2009-12-09 8 views

Répondre

2

Cela dépend du type de validation que vous souhaitez effectuer.

Voici quelques exemples de base:

  • Si les données vont être utilisées dans des requêtes MySQL assurez-vous d'utiliser mysql_real_escape_query() sur les données au lieu de addslashes().
  • S'il contient des chemins de fichier, assurez-vous de supprimer les parties "../" et de bloquer l'accès au nom de fichier sensible.
  • Si vous souhaitez afficher les données sur une page Web, veillez à utiliser htmlspecialchars() dessus.

Mais la validation la plus importante est que d'accepter les valeurs que vous attendez, autrement dit: permettre que des valeurs numériques lorsque vous numéros attendez, etc.

1

Réponse courte: non.

Réponse longue: cela dépend. Fondamentalement, vous ne pouvez pas dire qu'une certaine quantité de filtrage est ou n'est pas suffisante sans considérer ce que vous voulez en faire. Par exemple, ce qui précède permettra par "javascript: dostuff();", ce qui pourrait être OK ou il pourrait ne pas si vous utilisez une de ces valeurs GET ou POST dans l'attribut href d'un lien. De même, vous pourriez avoir une zone de texte riche où les utilisateurs peuvent éditer, ce qui n'a pas vraiment de sens.

Je suppose que ce que j'essaie de dire, c'est qu'il existe un ensemble d'étapes simples pour désinfecter vos données de sorte que vous puissiez les ignorer et dire «terminé». Vous devez toujours considérer ce que ces données font.

1

Cela dépend fortement de l'endroit où vous allez l'utiliser.

  • Si vous souhaitez afficher des éléments au format HTML, assurez-vous de bien spécifier le codage (par exemple: UTF-8). Tant que vous dépouiller tous les tags, vous devrait être bien.
  • Pour une utilisation dans les requêtes SQL, addslashes n'est pas suffisant! Si vous utilisez la bibliothèque mysqli par exemple, vous voulez regarder mysql::real_escape_string. Pour les autres bibliothèques DB, utilisez la fonction d'échappement désignée!
  • Si vous allez utiliser la chaîne en javascript, addslashes ne suffira pas.
  • Si vous êtes paranoïaque à propos des bogues de navigateur, consultez le OWASP Reform library
  • Si vous utilisez les données dans un contexte autre que HTML, d'autres techniques d'échappement s'appliquent.