问题标签 [htmlpurifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xss - XSS 预防,整洁 vs 净化器?
问候,
我正在尝试使用 CKEditor (一个 javascript WYSIWYG 编辑器)防止 XSS 和不正确的 html 来自输入字段。
我应该如何在服务器端过滤这些数据?我比较的两个选项是 PHP Tidy 和 HTML Purifier。我对速度、安全性和有效嵌套感兴趣。
编辑:
根据 HTML Purifier,Tidy 不会阻止 XSS。所以,让我指定我将首先通过用户输入
strip_tags($input,'<img><a><li><ol><ul><b><br>');
在传递给 Tidy 之前
php - HTML Purifier 配置中的白名单表单
我使用 HTML Purifier 来清理我的 CMS 中的输入。我的许多客户都喜欢在他们的网站上设置 PayPal 捐赠按钮,但 HTML Purifier 会去掉这些表单。
我注意到 HTML Purifier 有一个HTMLPurifier_HTMLModule_Forms
类,但我不知道它是否符合我的要求。如果是这样,我该如何启用它?
php - 过滤请求中的空字节
我正在使用 htmlpurifier 库来清理我的传入参数。但它不会过滤空字节(例如 %00)。我错过了什么还是图书馆不支持它?我需要使用 reg-ex 吗?感谢您的任何回答。
编辑:
我正在使用带有配置选项的 htmlpurifier
对于测试字符串
我得到输出
php - HTMLPurifier - 添加到忽略列表
我正在尝试通过 htmlpurifier 传递一些 XML 标记(abcdef>)。由于不支持标签本身,因此我尝试先添加一个元素,然后将其添加到 allowedElements。但是这不起作用,我只是得到一个空白页。任何关于我做错了什么的想法,或者是否有更简单的方法来实现我正在寻找的东西。
让知道是否有人需要任何其他详细信息。
注意:库在不添加元素的情况下工作正常。
php - 运行以下代码时,HTMLPurifier 死机
使用带有默认配置的最新版本的 HTMLPurifier。
下面的代码将在 PHP 中导致非常可爱的空白页面。我错过了什么吗?即使我将 HTML.TidyLevel 设置为light
或者none
它仍然会中断。以下是尝试净化以下代码时引发的错误的部分日志:http: //pastie.org/private/13f0htscq0v8bhhlt7dpg
作为参考,这是我用来执行此操作的相关代码:
最后,有问题的代码:
php - html 净化器拒绝单引号
这与HTMLPurifier - 添加到忽略列表有关。我在白名单中添加了几个标签。我现在有这个代码 -
问题是,如果我发送一个带有单引号属性值的 html 标记,htmlpurifier 会将其更改为双引号。例如
<columnseq path='test' label='tlabel' />
它甚至发生在演示站点(http://htmlpurifier.org/demo.php)上,带有测试字符串
这种行为可以被覆盖吗?
php - 如何在每个页面上包含 HTMLPurifier?
好的,现在我在每个页面上都包含了下面的代码,并且每次我将下面的代码放在一个新的网页中时,我也必须更改它。有没有一种方法可以一次包含所有这些代码并让它影响每个网页并让代码按应有的方式工作?
这是我必须一直更改的代码。
这是代码。
php - '+' 字符未通过 CKEditor/PHP/MySQL/HTMLPurifier 保存
我正在尝试使 UTF-8 编码与 CKEditor/PHP/MySQL/HTMLPurifier 一起使用。
我已将数据库表/字段的字符集转换为 utf8-unicode-ci。
我在 ckeditor 配置中设置了以下内容:
PHP 正在使用默认设置的 HTMLPurifier 净化 HTML。
我不确定我是否在尝试接受 UTF-8 时做正确的事情,但是诸如 α 之类的字符正在起作用……但由于某种原因,文本中的任何“+”都会消失。
有任何想法吗?
php - 来自 htmlpurifier 而不是正则表达式过滤的优势
我们最近在基于 Web 的应用程序中实现了 htmlpurifier。早些时候,我们使用正则表达式来匹配常见的 XSS 注入(脚本、img 等)。我们意识到这还不够好,因此转向了 htmlpurifier。现在考虑到 htmlpurifier 的工作速度很慢(与我们之前使用的正则表达式方法相比非常慢),真的值得拥有 htmlpurifier 吗?或者继续增加正则表达式过滤直到我们达到令人满意的水平是否有意义(可能会认为到那时速度优势将被抵消)。是否有其他人在其 Web 应用程序的安全性方面遇到过类似问题,您最后做了什么?
如果有任何不清楚的地方,请告知;我很乐意提供更多细节。
php - 如何使用 PHP 删除“空白标记” - 即没有文本节点的多个嵌套元素
我在客户的网站上安装了 CKeditor,允许他们使用 WYSIYG 编辑器输入一些文本。它大部分被锁定,只允许粗体、斜体、无序列表等。
例如,我还通过HTML 净化器运行用户提交的 HTML ,以确保他们不会变得聪明并开始尝试添加表格。例如,限制他们可以为 XSS 问题输入的内容也是一个好主意。
我只是查看了 CKeditor/HTML Purifier 组合产生的一些输出,并看到了这种暴行……
无论如何我可以配置 HTML Purifier 或使用其他东西来删除没有文本节点的元素吗?它显然需要从最新的后代开始,然后向上运行 DOM 树,删除没有带有文本节点的元素的最父。
假设该标记中从来没有任何仅表示的元素,这种方法是否有任何边缘情况?没有我能想到的自闭合元素(例如图像、输入元素等)。