• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zu SQL-Injections

Status
Für weitere Antworten geschlossen.

marlin-b

Neues Mitglied
Ich habe mich gerade mal mit dem Thema SQL-Injection beschäftigt, und dazu den Artikel bei Wikipedia durchgelesen.
SQL-Injection – Wikipedia

Dann habe ich anhand eines Scripts von mir getestet, war jedoch nicht erfolgreich.
Dann habe ich einfach mal die Abfrage ausgeben lassen und habe festgestellt, dass ' immer durch \' und " mit \" ersetzt wird.
show.php?id=25'+;DELETE+FROM+dl_files+WHERE+id+=+'25'
und alles nach id=25 wird ignoriert, auch keiner Fehlermeldung oder sonstieges.

Jedoch wird davor immer erzählt, dass man das sehr ernst nehmen sollte. Mein Script ist schon auf 3-4 Seiten im Einsatz. Jetzt ist meine Frage, ob ich Großalarm aulösen soll und alle eingaben vorher mit mysql_real_escape_string() bearbeiten?

Hoffe jemand hat Erfahrung damit ;-) (Hoffentlich keine Schlimmen^^)


Marlin
 
viele freehoster haben addslashes in der ini aktiviert, bei jeder request variable :)

du solltest dennoch immer mysql_real_escape_string benutzen, oder noch besser mysqli =)
 
viele freehoster haben addslashes in der ini aktiviert, bei jeder request variable :)

du solltest dennoch immer mysql_real_escape_string benutzen, oder noch besser mysqli =)

Dann bring ich mal ein kleines Update, wenn es am Host liegen könnte.

Ich habe auch einen VServer von Strato und dort habe ich sowas nicht eingestellt...?


Marlin
 
ja das ist der alte driver (mysql), dein code scheint dennoch anfällig für injectionen, du solltest wenigstens $_GET['id'] auf typ int setzen, besser ist noch mit mysql_real_escape_string zusätzlich den string zu escapen.

ein kleiner tipp: $_GET['id'] ist 4 mal schneller als $_GET[id] zudem vermeidest du probleme. also gewöhn dich dran, das um einen string ' kommen.
 
ja das ist der alte driver (mysql), dein code scheint dennoch anfällig für injectionen, du solltest wenigstens $_GET['id'] auf typ int setzen, besser ist noch mit mysql_real_escape_string zusätzlich den string zu escapen.

ein kleiner tipp: $_GET['id'] ist 4 mal schneller als $_GET[id] zudem vermeidest du probleme. also gewöhn dich dran, das um einen string ' kommen.

Man lernt immer was dazu, danke!
Werde jetzt $_GET['id'] und mysql_real_escape_string machen ;-)

Marlin
 
das a und o:
auf die id testen, wenn nicht vorhanden, dann abfrage verwerfen...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben