2010-11-21 4 views
5

Je fais beaucoup de $this->escape() dans la vue zend. Est-ce suffisant pour empêcher XSS?

Il existe HTMLPurifier en dehors de Zend Framework. Je me demande comment $this->escape() de zend se compare à HTMLPurifier.

Répondre

4

Il vous permet de produire du texte brut, tandis que HTMLPurifier vous permet de sortir du HTML sécurisé.

Vous ne pouvez pas avoir XSS avec du texte brut.

Vous devez utiliser HTMLPurifier au lieu de strip_tags si vous voulez sortir du HTML sécurisé provenant d'une entrée utilisateur (éditeur de texte enrichi par exemple).

4

HTMLPurifier a une fonction différente. HTMLPurifier n'échappe pas HTML ... eh bien, pas exactement. Il faut une configuration que vous lui donnez qui définit ce qui est autorisé dans le HTML et ce qui ne l'est pas, et il nettoie en fonction de cela. Le résultat est en fait toujours du HTML, avec certaines choses supprimées/désinfectées.

escape() sur cette autre main est en train de caractères comme HTML dans les entités HTML afin qu'ils rendent les mêmes caractères dans le navigateur au lieu d'être interprété comme HTML (par exemple & ->&amp;, < ->&lt;, > ->&gt; et ainsi de suite).

Différents objectifs.

Cela vous évite-t-il des problèmes XSS? Oui, mais assurez-vous que vous avez correctement configuré votre encodage de caractères. Escape est un alias de htmlspecialchars.