PHP/MySql sql injection verhindern

Hallo !

Ich habe eine kleine Frage.

In einer PHP Datei kommt folgendes

Code:
$user = $_POST['nickname'];
// db verbindung aufbauen
$sql = "INSERT INTO tab_user(nick) values(".$user.")";
mysql_query($sql);

Wir könnte man verhindern, dasss hier kein sql injection stattfindet ?
 
Crossposting^^
interessanter Link (PHP "Sicherheit")(einfach dem im ersten Post angegeben Punkt folgen und zu mysql-injection springen)

falls die Werte bekannt sind kannst du auch, das HTML-Formular mittels PHP dynamisch erstellen und
per select-Tags die Optionen zur auswahl anbieten.
 
Stichwort "Prepared Statements". Auf keinen Fall eine Query als String-Konkatenation zusammenbauen (wenn der User *irgendwie* Einfluss auf mindestens ein Element der Query haben kann).
 
Ganz ehrlich, wie viele Leute benutzen prepared statements?

Mit intval() für Zahlen und mysql_real_escape_string() für Strings bist du schon gut dabei.

Ich empfehle dir nur kein addslashes, da addslashes unter Umständen umgangen werden kann...
 
Ganz ehrlich, wie viele Leute benutzen prepared statements?
Äh, ja, und?

Nur weil die meisten keine Ahnung haben, heißt das nicht, dass man mal etwas richtig machen darf? Escaping ist da nur ein sehr unsauberer Workaround (und zudem escaped mysql_real_escape_string() keine "_" und "%", die man z.b. in LIKE-Ausdrücken verwenden kann).
 
Vielen dank fuer den Hinweis mit den Prepared Statements , kannte ich noch nicht.
mfg

sw33t
 
Zurück
Oben