我正在使用 HTMLPurifier 检查整个 HTML 文档中是否存在 XSS。问题是它似乎删除了
<body>
标签内的任何内容。但是,我想保留一切,只是留意严重的 XSS 攻击。
有什么想法如何允许
<HTML>
、<HEAD>
、<META>
等吗?
David,我刚刚在 HTMLPurifier 支持论坛上搜索,发现你很忙。
但也许您错过了几个月前的帖子,解决了您的确切问题,特别是回复:
完整的文档支持 (表面上)来一段时间 HTML净化器5.x系列;我们不 其实有解析代码 需要实际处理完整的 HTML 文档。
在那之前,您需要捕获您的头部和 DTD 并将其重新添加到纯化的文档中。
请记住,您可以构建从“头部”运行的 XSS 攻击。
您可以告诉 HTML Purifier 纯化的代码将位于哪个标签内(默认为“div”)。将其设置为“span”将阻止所有块级标签。您可以尝试将其设置为“body”,甚至“html”。
因此,这需要一些工作,但您可以自己实现。
所有步骤在这里解释起来都太多了,但我遇到了完全相同的问题。我想将 HTML 内容作为整个文档进行清理,并且必须找出困难的方法,即该库在幕后是如何工作的。
简而言之:
我已经在博客上详细解释了基于商店软件的用例的方法:https://machinateur.dev/blog/how-to-sanitize-full-html-5-documents-with-htmlpurifier .