L'ultime propre/fonctions sécurisées

J'ai beaucoup d'entrées de l'utilisateur à partir de $_GET et $_POST... Au moment où j'écris toujours mysql_real_escape_string($_GET['var'])..

Je voudrais savoir si vous pourriez faire une fonction qui fixe, s'échappe et nettoie la $_GET/$_POST tableaux tout de suite, de sorte que vous n'aurez pas à traiter avec elle à chaque fois que vous travaillez avec les entrées de l'utilisateur et ces.

Je pensais à une fonction, e.g cleanMe($input), et à l'intérieur, il devrait faire mysql_real_escape_string, htmlspecialchars, strip_tags, stripslashes (je pense que ce serait tout pour le rendre propre & secure) et ensuite de retour à la $input.

Alors, est-ce possible? Faire une fonction qui fonctionne pour tous les $_GET et $_POST, de sorte que vous ne font que cela:

$_GET  = cleanMe($_GET);
$_POST = cleanMe($_POST);

Dans votre code plus tard, lorsque vous travaillez avec des e.g $_GET['blabla'] ou $_POST['haha'] , ils sont garantis, dépouillé et ainsi de suite?

Me suis essayé un peu:

function cleanMe($input) {
   $input = mysql_real_escape_string($input);
   $input = htmlspecialchars($input, ENT_IGNORE, 'utf-8');
   $input = strip_tags($input);
   $input = stripslashes($input);
   return $input;
}
  • stripslashes() après mysql_real_escape_string() ... mon eyeees!
  • Je pense que la sécurité des données dépend de ce qu'ils font et où ils viennent. Tous vos traitements ne sont pas forcément nécessaires.
  • L'aide d'un maître d'assainir la fonction n'est pas la bonne solution. C'est pourquoi magic quotes a échoué. Échapper (ou mieux utiliser les solutions préparées) si et quand vous en avez besoin. Sinon, vous trouverez que vous êtes échapper au mauvais temps, et souvent plus d'une fois. Toutes ces fonctions ont des objectifs très différents, et plusieurs (par exemple, mysql_real_escape_string et stripslashes) sont essentiellement des inverses. Voir [Quelle est la meilleure méthode pour nettoyer les entrées utilisateur avec PHP? ](stackoverflow.com/questions/129677) pour plus d'info.
  • Oah wow, cleanMe() ne s'arrête pas toutes les xss, et ne rien faire pour l'arrêter sqli en raison de stripslashes(). Ce code est douloureux.
  • double possible de Quels sont les meilleurs PHP entrée de la désinfection des fonctions?
InformationsquelleAutor Karem | 2010-11-19