2009-09-22 10 views
3

Je suis juste en train d'apprendre à échapper à des choses et j'ai commencé à lire sur la façon dont il pourrait être risqué d'utiliser $_SERVER['HTTP_HOST'] en raison d'attaques XSS.

Je suis venu avec cela et je me demandais si je pouvais obtenir des commentaires sur ma tentative.

htmlspecialchars(
    filter_var($_SERVER[ 'HTTP_HOST' ], FILTER_SANITIZE_URL), 
    ENT_QUOTES, 'UTF-8' 
) 

Cela vous convient-il?

Tant de choses dépendent de la sécurité de cette variable, j'ai juste dû demander une entrée.

EDIT:

Je vais utiliser ce pour l'affichage sur tout le site, y compris ancrage HREF de base, forme-actions, etc.

Répondre

3

Les différentes fonctions s'échappant doivent être utilisées pour des situations différentes, par exemple:

  • urlencode pour les articles qui seront supprimés dans une chaîne de requête dans une balise <a>, à savoir. echo '<a href="index.php?foo=' . urlencode($foo) . '">'; (voir aussi http_build_query)
  • mysql_real_escape_string pour les variables qui vont dans une instruction SQL (si je préfère la variable bind)
  • htmlentities pour les chaînes que vous souhaitez afficher à l'utilisateur, qui peut éventuellement avoir HTML dans (voir aussi strip_tags)
3

Cela dépend de ce que vous voulez utiliser pour. Si vous voulez l'afficher, utilisez htmlspecialchars. Si vous souhaitez utiliser comme requête de base de données, vous pouvez utiliser mysql_real_escape_string en cas de mysql. (Ou déclarations préparées)

Questions connexes