【发布时间】:2022-01-14 12:17:30
【问题描述】:
有没有什么简单的方法可以在 HTML Purifier 中允许所有带有属性的 MathML 标签?
我尝试将 https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics 中的所有 MathML 标记与 HTML.Allowed 的属性一起放入,但我不知道这是否正确。
【问题讨论】:
标签: php mathml htmlpurifier
有没有什么简单的方法可以在 HTML Purifier 中允许所有带有属性的 MathML 标签?
我尝试将 https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics 中的所有 MathML 标记与 HTML.Allowed 的属性一起放入,但我不知道这是否正确。
【问题讨论】:
标签: php mathml htmlpurifier
目前在 HTML Purifier 中没有对 MathML 的原生支持。有一个旧的拉取请求,您可能会重新利用here,但由于它已经有几年的历史了,几乎肯定需要大量的手动工作;另见some discussion here:
首要考虑因素是安全性。当添加一个非常大的新 像 MathML 这样的扩展,很容易偷工减料,而不是 真正了解规范的每一个角落,构建解析器 真正了解它读取的内容,而不仅仅是检查 语法盲。
或者,您可以使用customization guide 将它们作为新标签和属性添加到 HTML Purifier,但这需要更多的工作,而不是更少。
简单地将标签添加到HTML.Allowed 不会有太大作用 - HTML Purifier 的优势在于它了解标签出现的上下文、允许它们出现的位置以及对其属性有意义的限制(例如属性像 'width' 采用整数,但像 'style' 这样的属性采用 CSS(将单独清理),而像 'onclick' 这样的属性根据定义是不安全的)。如果 HTML Purifier 对特定标签一无所知,即使您将其添加到允许列表,它也不会允许它,因为它不知道如何实际处理该标签。
简而言之:
不,遗憾的是没有简单的方法可以在 HTML Purifier 中允许 MathML。
【讨论】: