【发布时间】:2020-10-07 17:56:48
【问题描述】:
我目前正在使用 HTMLPurifier 运行一些代码。但是,我们希望保留一种标签类型。
我查看了问题和文档,但未能找到明确的答案...如何从 HTMLPurifier 中免除特定标签?
我正在寻找类似...的东西
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', $HTML_Allowed);
$config->set('ExemptHTML', "img,form,pre");
【问题讨论】:
-
我认为 HTML Purifier 不可能实现您的要求,因为它的整个前提是它将所有 HTML 分开,根据它所知道的进行分析,然后基于 HTML 重构关于它所知道的。您可以教它知道 specific 属性(甚至是 specific 非标准标签及其属性),但据我所知,没有办法告诉它“接受此标签上所有可能值的所有属性”。
-
有可能你甚至不会真的想要那个 - 例如。
onclick几乎肯定不是您希望在<img>标签上允许的属性! (虽然如果是,HTML Purifier 可能不是您正在做的事情的正确工具?这有点难以猜测。)您能再解释一下您的用例吗? :) -
实际上,我正在清理 XSS,但是还有其他代码正在运行,可以验证其他地方的脚本标签。我不是删除脚本标签,而是验证那些是有效的,所以我不需要HTMLPurifier来捕获XSS,如果它只是在一个脚本标签。不过,这不是触发 XSS 的唯一方法,只是最简单的方法。
标签: php htmlpurifier