Sonntag, Jänner 30, 2005

MySQL-Tipp: LIMIT 1

Solltest du bei einer MySQL-Abfrage nur ein Ergebnis erwarten setze ein LIMIT 1 an den Query, das sollte die Geschwindigkeit erhöhen :-)

Außerdem: Pass auf: MySQL-Injections, weisst du davon?

Das ist wenn du ein Formular hast und der User seinen Username eingibt, du führst dann diesen Query durch:

$sql = mysql_query("SELECT passwort FROM user WHERE username = '$_GET['username']'");

nur, was wenn der User als username etwa ' OR 'x'='x';-- eingibt????

Dann sihet der Query (Variablen als Text so aus):

SELECT passwort FROM user WHERE username = '' OR 'x' = 'X';--'

Es wird so jedes Passwort akzeptiert....und es ergibt keine Fehlemreldung, da mit ; der Befehl abgeschlossen wird und -- einen Kommentar einleitet...

Also: LIMIT 1 und MySQL-Injections verbieten, dann ist alles gut... ;)