SQL-Injektion: Karsten

Beitrag lesen

Hallo.

Um Injektionen zu vermeiden, wird im allgemeinen zum Gebrauch von mysql_real_escape_string() geraten. Laut HB werden \x00, \n, \r, , ', " und \x1a maskiert. Wenn ich alle Nutzereingaben stets kontrolliere, daß nur das enthalten ist, was ich auch als zulässige Eingabe erwarte, und ferner weiß, daß diese Zeichen (\x00, \n, \r, , ', " und \x1a) nicht enthalten sind, ist doch der Gebrauch von mysql_real_escape_string() an sich überflüssig, oder? Wenn ich z. B. einen Username teste, der nur aus Buchstaben von a-z und A-Z besteht, ist ja keins der zu maskierenden Sonderzeichen enthalten. Ich sehe eigentlich einen sinnvollen Einsatz von mysql_real_escape_string() nur bei textarea, einmal abgesehen davon, wenn ' und " auch in <input type="text"> zugelassen sein sollen (kann man ja beim Testen herausfiltern, somit wäre kein Injektion darüber möglich). \n und \r sind ja nur mit einer textarea möglich.