使 HTMLPurifier 省略双引号 around=“attributes”

make HTMLPurifier omit double quotes around="attributes"

提问人:mario 提问时间:3/30/2011 更新时间:3/30/2011 访问量:433

问:

这并不是很重要,但我想知道您是否可以让 HTMLPurifier 省略参数周围的双引号。当它过滤 HTML 时,它通常会将其重新格式化为 XHTML 语法。

但我宁愿而不是在输出中 - 只要有可能。<div class=alphanum>class="xyz"

配置设置 http://htmlpurifier.org/live/configdoc/plain.html 没有提供明显的选项,我也懒得看代码(500K 确实吓跑了你)。HTMLPurifier 在某些时候确实使用 DOMDocument。我不确定这是否只是为了预解析,还是用于输出序列化(那么我可以自己回答这个问题:不)。

我浏览了标签,什么也没找到。并启用实验性(?) 解析器不会更改输出行为。HTMLPurifier/Lexer/PH5P.php

那么有没有不常见的设置或调整呢?

htmlpurifier php html

评论

0赞 mario 3/30/2011
我知道我可以在清理后使用正则表达式。但我最好不要在这里写。:} -- 至于用例:只想改掉这个坏习惯。我只有一个真正的 XHTML 站点 [= 只有当你在我的书中使用正确的 mime 类型时才是正确的]。并且更愿意使用SGML符号,因为它再次成为一流的。
1赞 Gordon 3/30/2011
使用引号实际上并不是坏习惯。W3C 建议使用引号,即使可以消除引号
0赞 mario 3/30/2011
我接受这是最权威的建议。尽管如此,它还是会对可读性造成压力(想要避免),而且从技术上讲,现在大多数 XML 工具包都提供了 HTML 模式,因此不再需要它了。
1赞 alex 3/30/2011
从我的旅行来看,我认为这是不可能的,我相信你会知道如何编写正则表达式来剥离它们:)

答:

3赞 Edward Z. Yang 3/30/2011 #1

出于安全原因,HTML Purifier 特别引用了它的所有属性。没有旋钮可以将其关闭。

评论

0赞 mario 3/30/2011
结论性的答案。-- 引用是否阻止了特定类型的 XSS 漏洞利用?
1赞 Edward Z. Yang 3/30/2011
一个众所周知的例子是 IE 将反引号视为“引号”。事实上,当您丢失引号时,浏览器的特定行为是无止境的,因此 HTML Purifier 总是将它们放入其中。
0赞 mario 3/30/2011
还行。因此,这是一般行为,但适用于非字母数字属性内容。严格意义上的价值观没有问题吗?\w+
0赞 Edward Z. Yang 3/30/2011
我必须测试才能对此感到满意。