Mysql
 sql >> Base de données >  >> RDS >> Mysql

Qu'est-ce qu'un nettoyage suffisant pour une URL

"Une désinfection suffisante" dépend entièrement de l'environnement dont vous parlez. La désinfection pour MySQL doit être considérée comme entièrement séparée de la désinfection pour la sortie Web, et vous devez les gérer séparément pour éviter beaucoup de tracas.

Nettoyage pour MySQL

  • mysql_real_escape_string() nettoiera un élément de données et le rendra sûr à mettre à l'intérieur d'une requête SQL.
  • Tout autre type de données malveillantes, telles que les balises HTML à l'intérieur de la chaîne, doit être absolument ignorée. Essayer de le manipuler ici vous causera des maux de tête lorsque vous essaierez de le "dé-manipuler" plus tard après l'avoir sorti de la base de données. De mauvaises "données Web" ne peuvent pas nuire à votre base de données.

Désinfection pour la sortie

  • htmlspecialchars($val) au moment de la sortie empêchera toute balise malveillante d'être affichée, car < et > les caractères sont convertis en leurs représentations d'entité et non rendus en tant que délimiteurs de balises.
  • Utilisez le ENT_QUOTES modificateur si vous affichez quelque chose qui se trouve dans l'attribut entre guillemets d'un élément HTML, tel que <input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />

Cela devrait être tout ce dont vous avez besoin, sauf si vous avez des exigences particulières. strip_tags() ne devrait pas vraiment être utilisé pour le nettoyage, car il peut être trompé avec du HTML mal formé. La désinfection est un objectif louable, et si vous pouvez séparer vos contextes, vous rencontrerez moins de problèmes de manipulation de données entre eux.