Andreas Korthaus: Hack Attack aus P***n?

Beitrag lesen

Hi Christian!

"SELECT * FROM blahr WHERE y = "x"; delete * from geheim where "a" = "a";

sobald er durch mysql_escape_string gelaufen ist folgendes:

"SELECT * FROM blahr WHERE y = "x"; delete from geheim where "a" = "a";

Dann ist sowas wohl grob fahrlässig (funktioniert aber in MySQL), oder?

$sql = "DELETE FROM blahr WHERE id = ".mysql_real_escape_string($id);

denn da könnte ja theoretisch sowas draus werden:

$sql = "DELETE FROM blahr WHERE id = 1 or 1 = 1;"

Das heißt also nicht nur escapen sondern Werte auch unbedingt mit ' einschließen:

$sql = "DELETE FROM blahr WHERE id = '".mysql_real_escape_string($id)."'";

Viele Grüße
Andreas