Andreas Korthaus: SQL Injection

Beitrag lesen

Hallo!

eigentlich nicht. - Was aber interessant ist: Wie macht man's, wenn der SQL-Dialekt keine SPs unterstuetzt? Handarbeit?   :-(

Escaping. Das hilft 100%. Gute Datenbank-APIs stellen dafür Schnittstellen und/oder Methoden bereit.

Bist Du Dir da sicher?
mysql_real_escape_string() schützt folgende Zeichen:

NUL (ASCII 0),
\n', \r',
 \',  '',
 `"'

http://www.mysql.com/doc/de/mysql_real_escape_string.html

Was ist wenn ich sowas mache:

$id = "1 OR > 0";
$sql = "SELECT * FROM table WHERE id = ".mysql_real_escape_string($id);

IMHO sollte man die Werte immer noch in ' setzen, also

$sql = "SELECT * FROM table WHERE id = '".mysql_real_escape_string($id)."'";

Grüße
Andreas