2010-07-06 13 views

Répondre

1

Qu'est-ce que vous défendez? Une vulnérabilité dépend fortement de la manière dont les données sont utilisées. Il est impossible de créer un appel de fonction qui protège contre tout, et mélanger des systèmes de protection (comme l'injection xss et sql) est une très mauvaise idée.

Pour XSS, vous devez utiliser: htmlspecialchars($var, ENT_QUOTES);

Pour Sql Injection dans MySQL vous devez utiliser mysql_real_escape_string($var);

Si vous passez l'entrée d'utilisateur à system() ou d'une autre fonction similaire, vous devez utiliser escapeshellarg($var);

Ces sont les 3 premiers et en mélangeant ceux-ci ne causeront rien mais des problèmes.

+0

Défense contre XSS et l'injection. Est-ce que cela signifie que "je dois" mélanger le thème de toute façon? – TheNone

+0

@phpExe Non, pas vraiment. XSS est seulement un problème lorsque vous imprimez des données, et l'injection SQL est seulement un problème lorsque vous générez des requêtes. Si vous ** voulez vraiment que les données soient htmlspecialchar'ed dans la base de données (je déconseille cela parce qu'il peut vider les comparaisons) puis faire un 'mysql_real_escape_string (htmlspecialchars ($ var, ENT_QUOTES));'. Dans le cas d'une injection SQL, assurez-vous que la routine d'échappement est toujours la toute dernière opération avant de générer la requête. – rook

+0

Merci La Tour, Vous êtes mon idole. – TheNone

3

Le premier est clairement conçu à cet effet.

Questions connexes