Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wann sollte ich mysql_real_escape_string NICHT verwenden

Es ist aus mehreren Gründen eine schlechte Idee:

  • Erstens geht es davon aus, dass Ihre Eingaben immer in die Datenbank und nur in die Datenbank gehen. Was ist, wenn etwas in der HTML-Ausgabe verwendet wird? Oder in einer E-Mail? Oder in eine Datei geschrieben? Oder viele andere Dinge... Ihre Filterung sollte immer kontextsensitiv sein.
  • Noch wichtiger ist, dass es die nachlässige Verwendung von GET, POST usw. fördert, da es keinen Hinweis darauf gibt, dass sie gefiltert wurden. Wenn jemand Sie sieht, verwenden Sie

    Echo $_POST['Name'];

    auf einer Seite, woher wissen sie, dass sie gefiltert wurde? Oder noch schlimmer ... bist du sicher, dass es das war? Was ist mit dieser anderen App? Weißt du, der, der dir gerade übergeben wurde? Was würden neue Entwickler tun? Würden sie überhaupt wissen, dass Filterung wichtig ist?