【问题标题】:make HTMLPurifier omit double quotes around="attributes"使 HTMLPurifier 在="attributes" 周围省略双引号
【发布时间】:2023-04-06 15:34:02
【问题描述】:

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

但我更喜欢在输出中使用<div class=alphanum> 而不是class="xyz" - 只要有可能。

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

我浏览了 标签,一无所获。并且启用实验性(?)HTMLPurifier/Lexer/PH5P.php 解析器不会改变 输出 行为。

那么有什么不常见的设置或调整吗?

【问题讨论】:

  • 我知道我可以在清理后使用正则表达式。但我最好不要在这里写。 :} -- 至于用例:只是想改掉坏习惯。我只有一个真正的 XHTML 站点 [= 只有在我的书中使用正确的 mime 类型时才会如此]。并且现在更喜欢使用 SGML 表示法,因为它又是一流的。
  • 我接受这是最权威的建议。它仍然可能对可读性造成压力(想避开),而且现在大多数 XML 工具包都提供 HTML 模式,因此在技术上不再需要它。
  • 从我的旅行中,我认为这是不可能的,我相信你会知道如何编写正则表达式来剥离它们:)

标签: htmlpurifier php html htmlpurifier


【解决方案1】:

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

【讨论】:

  • 结论性的答案。 -- 引用阻止了特定类型的 XSS 攻击吗?
  • 一个众所周知的例子是 IE 将反引号视为“引号”。事实上,当您丢失引号时,浏览器特定的行为是没有止境的,因此 HTML Purifier 总是将它们放入。
  • 好的。所以这是一般行为,但用于非字母数字属性内容。严格意义上的\w+ 值没有问题?
  • 我必须进行测试才能对此感到满意。
猜你喜欢
  • 2011-09-13
  • 1970-01-01
  • 2020-04-08
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2014-05-30
相关资源
最近更新 更多