5

$this->escape()我在 zend 视图中做了很多工作。这足以防止 XSS 吗?

Zend 框架之外有 HTMLPurifier。我想知道 zend$this->escape()与 HTMLPurifier 相比如何。

4

2 回答 2

4

HTMLPurifier 服务于不同的目的。HTMLPurifier 不会转义 HTML……嗯,不完全是。它需要您提供的配置来定义 HTML 中允许的内容和不允许的内容,并在此基础上进行清理。结果实际上仍然是 HTML,删除/清理了某些内容。

另一方面,escape() 将类似 HTML 的字符转换为 HTML 实体,以便它们在浏览器中呈现相同的字符,而不是被解释为 HTML(例如&-> &amp;<-> &lt;>->&gt;等)。

不同的目标。

它能让你摆脱 XSS 问题吗?是的,但请确保您已正确配置您的字符编码。

于 2010-11-21T01:36:28.477 回答
4

escape 是 htmlspecialchars 的别名。它允许您输出纯文本,而 HTMLPurifier 允许您输出安全的 HTML。

你不能有纯文本的 XSS。

如果要输出来自用户输入(例如富文本编辑器)的安全 HTML,则必须使用 HTMLPurifier 而不是 strip_tags。

于 2010-11-21T08:04:39.223 回答