Htmlpurifier 不会向允许的标签添加一些标签

Htmlpurifier does not add some tags to the allowed ones

提问人:Robokop 提问时间:9/10/2023 更新时间:9/10/2023 访问量:16

问:

我想配置 htmlpurifier,以便它允许 html 中的标签。 Htmlpurifier 带有标签的白名单 table, tbody 和不起作用。 在演示模式下的官方网站上,即使您将表格标签添加到允许的标签中,也会将其删除。但标签工作正常。告诉我,我做错了什么?

您可以尝试在此处进行配置: https://htmlpurifier.org/demo.php

$whitelistTagList = ['u', 'table'];

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', implode(', ', $whitelistTagList));

return HTMLPurifier::getInstance()->purify($value, $config);
php xss htmlpurifier

评论

0赞 pinkgothic 9/10/2023
你能给我们展示一下你放进去的一些 HTML 吗,以及 HTML Purifier 用它做了什么?

答:

0赞 pinkgothic 9/10/2023 #1

值得注意的是,标签本身并不是有效的 HTML。您还需要允许 、 、 等。否则,HTML Purifier 充其量只能像这样打开输入:<table><tr><td><th>

<table>
  <tr>
    <td>
      Foo
    </td>
  </tr>
</table>

...通过净化进入其中:

<table>
      Foo
</table>

...并且由于要求其中的其他 HMTL 节点有效,因此整个标签及其内容将被删除。<table><table>

顺便说一句,你可能应该 ,没有空格。巧合的是,它也适用于空间,但所描述的 HTML 语法。“允许”在逗号后不使用空格:implode(',', $whitelistTagList)

使用以下命令指定允许的元素和属性: 。例如,如果只想允许段落和链接,请指定 .element1[attr1|attr2],element2...a[href],p