PHP HTML 净化器和 MathML

2024-03-29

有没有什么简单的方法可以允许所有 MathML 标签在 HTML Purifier 中具有属性?

我试图将所有 MathML 标签从https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics具有属性HTML.Allowed但我不知道这是否是正确的方法。


目前 HTML Purifier 中没有对 MathML 的本机支持。有一个旧的拉取请求,您可以重新调整用途here https://github.com/ezyang/htmlpurifier/pull/200,但由于它已有几年历史,修补它几乎肯定需要大量的手动工作;也可以看看这里有一些讨论 https://groups.google.com/g/htmlpurifier/c/YsfMBcdGm-I/m/2fmT-HrHCQAJ:

首要考虑的是安全性。当添加一个非常大的新内容时 像MathML这样的扩展,很容易偷工减料,而不是 真正理解规范的每个角落并构建解析器 那truly理解它所读到的内容,而不仅仅是检查 语法盲目。

或者你可以使用定制指南 http://htmlpurifier.org/docs/enduser-customize.html将它们作为新标签和属性添加到 HTML Purifier,但这会增加工作量,而不是减少工作量。

只需添加标签即可HTML.Allowed不会做太多事情 - HTML Purifier 的优势在于它了解标签出现的上下文、允许它们出现的位置以及对其属性有意义的限制(例如,像“width”这样的属性采用整数,但像“style”采用 CSS(将单独清理),而像“onclick”这样的属性根据定义是不安全的)。如果 HTML Purifier 对特定标记一无所知,即使您将其添加到白名单中,它也不会允许这样做,因为它不知道如何实际处理该标记。

简而言之:

不,不幸的是没有简单的方法可以在 HTML Purifier 中允许 MathML。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP HTML 净化器和 MathML 的相关文章

  • 从移动版本切换到完整网站(桌面版本)

    我使用此代码将用户从桌面版本引导到我的移动网站
  • 如何在php中正确显示另一种语言的mysql表数据

    我有一个 mySQL 表 其中一列中的数据采用英语以外的语言 波斯语 当我在表中输入数据时 它会正确显示 但是当我想在 php 文件中显示数据时 它会显示如下 好吧 我应该怎么做才能以正确的形式显示数据 由于我经常使用 非英语 字符 因此要
  • 在 php 中将单词转换为数字 II

    这里有一个很棒的功能在 PHP 中将单词转换为数字 https stackoverflow com questions 1077600 converting words to numbers in php来自埃尔约博 但我有一个问题 字符串
  • 使用月份、年份、星期几和周数计算月份中的某一天

    如何在 PHP 中计算月份中的某一天 并给出月份 年份 星期几和周数 例如 如果我有 2013 年 9 月 星期几是星期五 周数是 2 那么我应该得到 6 2013 年 9 月 6 日是第二周的星期五 实现此目的的一种方法是使用相对格式 h
  • PHP实现的机票预订系统

    如何防止预订系统中的座位被重复预订 我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目 我有一个小问题 仅在付款后 门票和座位详细信息才会永久存储在此处 座位号在付款前分配 假设人 1 预订了飞机上的座位 x 并支付
  • 如何使用 php 将 base64 解码的图像保存在文件系统中?

    我通过向我的 Web 服务发出 POST 请求来获取 Base64 编码的 JPEG 字符串 我想解码它并将其保存在文件系统中 我如何使用 PHP 5 3 来实现这一点 我能够使用 base64 decode 函数成功解码数据 如何将此解码
  • Guzzle 中的“并发”到底是什么?

    我没有找到太多关于concurrency选项中Pool 如果这是可以在服务器上打开的 TCP 套接字数量 那么问题是 我可以使用多少并发来更快地处理请求 我有这个使用的例子Pool I am using Laravel this is ba
  • Woocommerce 获取产品

    我使用以下代码从我的 WordPress 网站中的 WooCommerce 获取产品类别列表
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • foreach 循环中 current() 的意外行为[重复]

    这个问题在这里已经有答案了 这是一个简单的循环 list array A B C D foreach list as var print current list Output demo http 3v4l org sBDjl BBBB O
  • MVC和依赖注入,被迫使用单例Controller?

    我正在致力于构建一个根据 MVC 原则运行并利用依赖注入的 PHP 框架 我想我已经把前端控制器部分放下了 有一个工作路由器实例化控制器实例并根据请求的 URI 调用适当的操作 接下来是依赖注入 我想实现一个使用反射解决依赖关系的容器 这样
  • 我应该在 PHP 代码中使用断言吗?

    一位同事添加了assert http php net assert在我们的库中 在我本来会使用 if 语句并引发异常的地方执行几次命令 在此之前我什至从未听说过断言 以下是他如何使用它的示例 assert isset this gt rec
  • 如何使用 php 从字符串中提取日期

    我需要从字符串中提取日期 下面是我的代码和字符串 str Updated status to Masters Software Engineering Enrolled Documents to Send on 03 06 2014 14
  • 将字符串分解为标记,保持引用的子字符串完整

    我不知道我在哪里看到它 但是谁能告诉我如何使用 php 和 regex 来完成这个任务 this is a string that has quoted text inside 我希望能够像这样爆炸它 0 this 1 is 2 a 3 s
  • PHP 启动:无法加载动态库 php5.4.3/ext/php_ffmpeg.dll 不是有效的 Win32 应用程序

    再会 我尝试在 Windows 7 计算机上安装 dll 文件 php ffmpeg 但不断收到此错误 29 Jan 2013 11 37 00 UTC PHP Warning PHP Startup Unable to load dyna
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 纯旧 PHP 对象 (POPO) 一词的确切含义是什么?

    我想了解一下波波 我搜索了 popo 发现它代表 Plain Old Php Object 但我不确定 Plain Old Php Object 的确切含义 我想知道什么是 popo 以及在哪里使用它 谢谢 普通旧 在此处插入语言 对象是一

随机推荐

  • Typescript 用循环动态创建数组

    我正在创建一个模拟类 用于为我的 Angular2 TypeScript 项目生成示例数据 我仍然是编程初学者 并且对有关 TypeScript 的可用信息感到困惑 我的问题 我想创建 100 个项目并将它们保存在一个数组中 这 100 个
  • 如何创建表单类的新实例,然后将其作为 acDialog 框打开(暂停其他代码)?

    Problem 我有一个复杂的搜索表单 需要多次 同时 打开 以允许用户同时进行多个搜索 我发现可以使用以下命令打开表单的实例 因为它是一个类 Option Compare Database Option Explicit Array to
  • Plotly R - 错误“`line.width`当前不支持多个值。”

    当我运行以下命令时 interactive plot lt plot ly data vep wes aff rare summary x n y mean af type scatter mode markers hoverinfo te
  • 为什么 Android 不使用更多的枚举?

    我开始非常喜欢在代码中使用 C 和 Java 枚举 原因如下 它们比整数 字符串或布尔标志集更加类型安全 它们会产生更具可读性的代码 将枚举设置为无效值比 int 或字符串更困难 它们可以轻松发现变量或参数的允许值 我读到的所有内容都表明它
  • 分支/更改未合并,尽管 Gerrit 声称,它是

    每次我都看到merged关于我在 Gerrit 中的变化的状态 我确实git pull origin 我可以清楚地看到 我的更改 分支实际上尚未合并到 master 中 请检查我的 Gerrit 工作流程并告诉我 我做错了什么或缺少什么 在
  • 用于清除 Git Bash 屏幕(包括输出缓冲区)的命令

    Git 中是否有任何命令可以清除屏幕 例如在window命令行中执行了很多代码后 如果输入cls 那么它会清除之前的所有代码 所以我想要 Git 中相同类型的功能 所以任何人都可以告诉我命令名称 实际上你正在寻找一个Unix用户环境命令 c
  • Firefox 中 Window.getCompulatedStyle 未实现接口 Element 错误

    我想将一些数据附加到 HTML 元素 因此我使用了以下代码 bookListDiv append data HTMLString 一切都正常 但是我想在显示此元素时添加淡入动画 因此我将其修改为 data HTMLString hide a
  • 是否可以对任何文本分类应用 PCA?

    我正在尝试用 python 进行分类 我正在对网页使用朴素贝叶斯多项式NB分类器 将数据从网络检索到文本 稍后我对此文本进行分类 网络分类 现在 我尝试对这些数据应用 PCA 但 python 给出了一些错误 我的朴素贝叶斯分类代码 fro
  • Spark 选择 RDD 中的最高值

    原始数据集是 numbersofrating title avg rating newRDD 3 monster 4 4 minions 3D 5 我想在newRDD中选择前N个avg ratings 我使用以下代码 它有一个错误 sele
  • 模拟对象返回带有 Moq 的模拟列表

    我正在尝试测试以下代码 public void CleanUp List
  • 直接读取程序计数器

    Intel CPU 上的程序计数器可以在内核模式或其他模式下直接读取 即没有 技巧 吗 不 EIP IP 无法直接访问 但在位置相关代码中 它是链接时间常量 因此您可以使用附近 或远处 的符号作为立即数 mov eax nearby lab
  • 使用python(windows)创建两个子进程

    使用Python编程语言完成以下任务 创建两个进程 我们称之为 P1 和 P2 P1应该打印 我是P1 P2应该打印 我是P2 主进程 创建 P1 和 P2 的进程 应该等待它们 然后 P1和P2完成后 主进程应该打印 我是主进程 两个进程
  • 在特定行之后添加行

    我正在尝试将特定行添加到文件中的特定区域 我正在使用这个 new file open file txt r for line in new file if line Include below line line nIncluded tex
  • Find() 与Where().FirstOrDefault()

    我经常看到人们使用Where FirstOrDefault 进行搜索并获取第一个元素 为什么不直接使用Find 对方有优势吗 我看不出有什么不同 namespace LinqFindVsWhere class Program static
  • 使用正则表达式修剪电话号码

    可能是一个简单的正则表达式问题 如何从电话号码中删除除前导 之外的所有非数字 i e 012 3456 gt 0123456 1 234 56789 gt 123456789
  • 为什么模式匹配一​​个单词而有两个相同的单词?

    请看一下这个 如你所见 只有one匹配于regex101 但浏览器匹配two相同的单词 所以为什么regex101无法匹配第二个单词 无论如何我需要匹配这两个词 或更多 如果存在的话 注意到它与以下内容无关g旗帜 因为我在小提琴中使用过它
  • CreateProcessAsUser 和 LogonUser 无密码

    使用 WTSGetActiveConsoleSessionId 和 WTSQueryUserToken 我知道作为 SYSTEM 运行的服务可以在当前桌面上启动应用程序 http blog dcuktec com 2009 05 pytho
  • 防止 Azure B2C 自定义策略中的电子邮件更改

    有没有办法防止密码重置期间更改电子邮件 有密码恢复的标准政策 但我不喜欢在那里更改电子邮件 该电子邮件用作与其他应用程序集成的 ID 密码重置期间更改电子邮件不会更改用户的实际电子邮件 如果用户验证电子邮件但随后意识到这不是他们想要重置密码
  • python 使用 numpy 进行位移

    我正在使用 64 位无符号整数 并在位移后比较该值 然后再解码其余位值 我正在迭代数百万个值并尝试最大程度地减少处理时间 问题是 uint64 和 numpy uint64 都不支持位移位 我试图避免使用 int64 以避免负值 示例数据
  • PHP HTML 净化器和 MathML

    有没有什么简单的方法可以允许所有 MathML 标签在 HTML Purifier 中具有属性 我试图将所有 MathML 标签从https developer mozilla org en US docs Web MathML Eleme