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!