Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Allgemeines zu Suleitec.de » Mysql-User Antworten
Mysql-User

MCM
Quasselstrippe


Beiträge: 425


1:
Select * from user where userid=Drop table user;


geht das überhaupt?? Ich meine das ist doch eine ungüliger Syntax und dmit auch ne ungültige Abfrage!!

---
cya MCM

[my page] [about me]

[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]

  Profil   Website   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Vermutlich Syntax Fehler.

---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

NetDrag
Foren-Team


Beiträge: 461


m3rlin schrieb am 01.07.2003 18:28
NetDrag schrieb am 01.07.2003 16:15
ne nicht unbedingt dann wirt aus der Abfrage

Select * from user where userid=;Drop table user;

2 Abfragen und im schlimmsten Fall ist deine Tabelle weck


Sowas nennt sich "SQL-Injection" und zählt zu den Standard-Sicherheitslücken die in Scripten immer wieder auftauchen. In jeder PHP-FAQ steht, dass mann POST- oder GET-Variablen nicht ungeprüft weiter verarbeitet. Ein richtiger Programmier fängt sowas ganz einfach ab mit
1: 
2: 
3:
 
if(!is_numeric($user_id)) die ("User-ID ungültig.") ;

oder so ähnlich. Eine zweiten MySQL-User brauchst Du dafür nicht .


Ich weiß schon, nur sowas geht nicht immer. Vor allem bei komplexeren Datentypen.
Ich mach das normalerweise mit RegExpression.

Kann schon sein daß es so zu einem Syntaxfehler kommt, aber auf so ne art gehts. Ich weiß jetzt nicht auswendig ob ;Drop table user; oder ';drop table user; reicht.

Regelmäßige Backups kommt bei mir nicht in Frage. Ich hab nen Cluster, der der sich die daten aufteilt. Meine Datenbank ist im Moment ein halbes Jahr online und hat 15GB.

Ich wollte nur mal fragen ob I-net gibt der alle 2 anbietet, weil in einem Mail an mich, von einem User hier, diese Problematik aufkam.

Das das niemand versucht stimmt nciht. Ich hab auf meinem Honeypot sowas eingerichtet, ein formular das usereingaben annimmt und dann das die eingaben nur in eine Datei schreibt. Da waren schon ein paar drops dabei.

---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren

NetDrag
Foren-Team


Beiträge: 461


MCM schrieb am 01.07.2003 18:55
1:
Select * from user where userid=Drop table user;


geht das überhaupt?? Ich meine das ist doch eine ungüliger Syntax und dmit auch ne ungültige Abfrage!!


Select * from user where userid= ; Drop table user;
strichpunkt nicht vergessen, der die erste Abfrage beendet

---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren

MCM
Quasselstrippe


Beiträge: 425


hm, aber du kannst das Pronlem ja schlecht umgehen. Klra wenn nur Zahlen velangt sind, kannst du den Fehler abfangen, aber was ist bei Worten?? Du kannst doch nicht jeden Newsbeitrag löschen (ich nehm mal ein Newssystem an) wo das Wort drop drin vorkommt.

---
cya MCM

[my page] [about me]

[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]

  Profil   Website   Editieren   Zitieren

NetDrag
Foren-Team


Beiträge: 461


das problem ist ja nicht drop sondern ;drop.

einfacher ist das eben alles mit 2 usern

---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren

MCM
Quasselstrippe


Beiträge: 425


und z-B. "delete gb" ;)

Um ehrlich zusein, hab ich mir in meinem aktuellen script noch gar keine gedanken darüber gemacht, aber danke für den Hinweis, werde das mal berücksichtigen

---
cya MCM

[my page] [about me]

[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]

  Profil   Website   Editieren   Zitieren

Adrian
Quasselstrippe


Beiträge: 246


wie wärs mit addslashes? ;)

---
schaut mal auf http://www.planetcoding-server.net vorbei

  Profil   E-Mail   Website   Editieren   Zitieren

MCM
Quasselstrippe


Beiträge: 425


Was meinst du damit??

---
cya MCM

[my page] [about me]

[Je mehr Bürger mit Zivilcourage ein Land hat, desto weniger Helden wird es einmal brauchen]
[by Franca Magnani]

  Profil   Website   Editieren   Zitieren

Adrian
Quasselstrippe


Beiträge: 246


Alle Benutzereingaben in Queries mit addslashes() entschärfen.
Dann ist SQL injection nicht mehr möglich.

Um doppeltes addslashes zu vermeiden, sollte man noch das da am Anfang von den Scripts einbauen:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18:
function stripslashes_array(&$array)
{
 reset($array);
 while(list($key,$val)=each($array))
 {
  if(is_string($val)) $array[$key]=stripslashes($val);
  elseif(is_array($val)) $array[$key]=stripslashes_array($val);
 }
 return $array;
}

if (get_magic_quotes_gpc())
{
  if(is_array($_REQUEST)) $_REQUEST=stripslashes_array($_REQUEST);
  if(is_array($_POST)) $_POST=stripslashes_array($_POST);
  if(is_array($_GET)) $_GET=stripslashes_array($_GET);
  if(is_array($_COOKIE)) $_COOKIE=stripslashes_array($_COOKIE);
}


---
schaut mal auf http://www.planetcoding-server.net vorbei

  Profil   E-Mail   Website   Editieren   Zitieren
Seite 1 | 2  

Antworten
Nach oben