PHP: Est mysql_real_escape_string suffisant pour le nettoyage de la saisie de l'utilisateur?

Est mysql_real_escape_string suffisant pour le nettoyage de la saisie de l'utilisateur dans la plupart des situations?

::EDIT::

Je pense principalement en termes de prévention d'une injection SQL, mais en fin de compte je veux savoir si je peux faire confiance les données de l'utilisateur après que je demande mysql_real_escape_string ou si je doit prendre des mesures supplémentaires afin de nettoyer les données avant de me la passer autour de l'application et des bases de données.

Je vois où de nettoyage pour HTML caractères est important, mais je ne voudrais pas considérer qu'il est nécessaire de faire confiance à la saisie de l'utilisateur.

T

  • XSS est un énorme problème, si vous l'ignorez, vous allez avoir des problèmes de grandeur égale. Vous devez valider sur le chemin, mais si vous n'êtes pas décapage javascript lorsque vous affichez le contenu de l'utilisateur, c'est vraiment, vraiment trivial à faire des choses comme le Détournement de Session et les attaques XSS qui est franchement, waaay plus facile à utiliser que l'injection SQL, mais est un peu plus récent, donc les gens ne comprennent pas encore.
  • mysql_real_escape_string est uniquement destiné à protéger contre les injections SQL. Pour d'autres vulnérabilités, vous avez besoin d'autres outils.
  • mysql_real_we_really_mean_it_this_time_escape_string couvre ces cas. Lorsqu'elle est ajoutée dans un futur proche.
  • hilarant, mais les couilles, pas d'une fonction peut faire tous les travaux de nettoyage.
  • s'Échapper de la chaîne de caractères n'est pas sûre! En savoir sur le prêt consolidés pour MySQLi.
InformationsquelleAutor Thomas | 2010-03-01