4

我阅读了有关用于 XSS 攻击的格式错误的标签的评论。我应该如何对这些进行消毒。如果我使用 HTMLPurifier 之类的库,它是否将其作为其工作的一部分?或者这是一个独立的事情?我很少听到人们谈论它。

4

4 回答 4

2

HTML Purifier 的部分设计理念是仅输出符合标准的 HTML,以尽量减少浏览器解释的差异。因此,HTML Purifier 永远不会输出格式错误的标签。

于 2010-11-19T22:06:44.090 回答
0

HTMLPurifier 实际上会清理 XSS。

于 2010-11-19T20:20:10.457 回答
0

在这种情况下,HTMLPurifer 是多余的。如果 XSS 在标签内,那么您可以注入 javascript 事件而无需<>. 最近这件事发生在推特上。答案是使用htmlspecialchars($var,ENT_QUOTES);.

于 2010-11-19T22:34:13.217 回答
0

在这个时代,为了完全保护自己免受 XSS 攻击,您需要将 HTML Purifier 提供的列入白名单而不是黑名单。不仅如此,如果放在错误的上下文中甚至htmlspecialchars($var,ENT_QUOTES);对您没有帮助,因为有很多方法可以避免同时使用 html 标签和引号(stringFromChar,使用反斜杠),您还必须考虑不同的浏览器字符集,这可能允许例如这种攻击在 UTF-7\\\+ADw-script+AD4-alert(/xss/)+ADw-/script+AD4---//--中执行。尽管 HTMLPurifier 确实有很大的开销,但它是一种简单的非技术性方法来防止 XSS 攻击(尽管已经存在并且我相信它们的过滤器中也会存在漏洞)。

于 2010-11-20T01:21:46.137 回答