用于清除事件属性的HTML净化器


HTML Purifier to clean event attributes

我正在努力解决一些存储XSS漏洞,我正在使用HTMLPurifier。我在页面上有一个输入框,如果我键入'"onclick="alert(1);"代码被保存到数据库中,并在客户端上执行。即使在通过净化器运行输入和输出之后,这种情况也会发生。似乎html净化器只在html标签中包含这些属性时才会删除。我想知道净化器是否有一些配置会只删除事件属性,或者关于如何清除这些属性的任何其他建议。

HTML净化器纯粹用于将在页面上用作HTML的内容。它不适合验证内容,例如,这些内容将进入HTML元素的属性中。

您可以使用HTML净化器的一些内部API来验证这种情况下的内容。然而,对于评论中引用的示例,您只需要htmlspecialchars就可以做正确的事情。验证器的正确选择取决于您将内容放入的属性。