我在zend视图中做了很多$this->escape()
。这足以阻止XSS吗?
Zend Framework之外还有HTMLPurifier。我想知道zend的$this->escape()
与HTMLPurifier的比较。
答案 0 :(得分:4)
HTMLPurifier用于不同的目的。 HTMLPurifier不会逃避HTML ...嗯,不完全是。它需要一个你给它的配置来定义HTML中允许的内容以及不允许的内容,并根据它进行清理。结果实际上仍然是HTML,删除/清理了某些内容。
另一方面, escape()将类似HTML的字符转换为HTML实体,以便它们在浏览器中呈现相同的字符,而不是被解释为HTML(例如&
- > &
,<
- &gt; <
,>
- &gt; >
等等。
不同的目标。
它是否可以帮助您避免XSS问题?是的,但请确保您已正确配置字符编码。
答案 1 :(得分:4)
escape是htmlspecialchars的别名。它允许您输出纯文本,而HTMLPurifier允许您输出安全的HTML。
你不能使用纯文本的XSS。
如果要输出来自用户输入的安全HTML(例如富文本编辑器),则必须使用HTMLPurifier而不是strip_tags。