dedlfix: Sicher Datenbankeintragungen über ein Formular machen

Beitrag lesen

Hi!

Bei Zahlen hilft mysql_real_escape_string ja auch, intval ist letztendlich eigentlich nur schöner oder?

Nein, mysql_real_escape_string() hilft nicht bei Zahlen, denn es ist für den Stringgebrauch gedacht, so wie es die letzten beiden Teile des Namens auch sagen. Wenn du in ein SQL-Statement die Zahl nackt als solche einfügst und nicht in Anführungszeichen wie einen String, dann hast du trotz mysql_real_escape_string() einen Fehler gemacht und eine Injection-Lücke. Deshalb entweder die Zahlen komplett wie Zahlen behandeln (und dabei sicherstellen, dass es Zahlen sind) oder komplett wie Strings (Anführungszeichen und mysql_real_escape_string()).

Zumindest ist das die Behandlung aus SQL-Statement-syntaktischer Sicht. Fachlich kann es ebenfalls noch Anforderungen geben, wie mit den Zahlen umgegangen werden soll.

Lo!