HTMLPurifier 去除 select 个标签
HTMLPurifier strips select tags
我正在使用 HTMLPurifier 来防止 xss。 html 包含各种标签,例如 SELECT、OPTION。但是 HTMLPurifier 删除了 SELECT, OPTION 标签并保留了纯文本。如何允许 SELECT、OPTION 标签。
这是代码
$html = "<select>
<option value="1" selected>Test 1</option>
<option value="2" selected>Test 2</option>
</select>";
$config = \HTMLPurifier_Config::createDefault();
$config->set( 'AutoFormat.RemoveEmpty', true );
$purifier = new \HTMLPurifier( $config );
$cleanHtml = $purifier->purify( $dirtyHTML );
代码return'Test 1Test 2'
<select>
和 <option>
是表单元素。由于表单可以使网络钓鱼变得微不足道,HTML Purifier 以其“默认安全”的心态,甚至懒得加载表单的 HTML 定义,因此您不能简单地通过 (仅)设置 HTML.AllowedElements
.
但是,设置HTML.Trusted
lets you enable forms, but that enables them altogether. For some discussion on altering the behaviour, see the thread "Anyone have a config that allows form elements?" on the HTML Purifier discussion forum,例如:
The forms would only be allowed to have an empty action; they always submit to themselves.
默认情况下不是:您必须对其进行编码。
How would I enable it?
可能最简单的事情是 copy-paste 来自 HTMLPurifier/HTMLModule/Forms.php
的定义,然后适当地调整它们。请注意,这些定义假设用户是受信任的,因此请仔细检查您允许的所有字段。
我正在使用 HTMLPurifier 来防止 xss。 html 包含各种标签,例如 SELECT、OPTION。但是 HTMLPurifier 删除了 SELECT, OPTION 标签并保留了纯文本。如何允许 SELECT、OPTION 标签。
这是代码
$html = "<select>
<option value="1" selected>Test 1</option>
<option value="2" selected>Test 2</option>
</select>";
$config = \HTMLPurifier_Config::createDefault();
$config->set( 'AutoFormat.RemoveEmpty', true );
$purifier = new \HTMLPurifier( $config );
$cleanHtml = $purifier->purify( $dirtyHTML );
代码return'Test 1Test 2'
<select>
和 <option>
是表单元素。由于表单可以使网络钓鱼变得微不足道,HTML Purifier 以其“默认安全”的心态,甚至懒得加载表单的 HTML 定义,因此您不能简单地通过 (仅)设置 HTML.AllowedElements
.
但是,设置HTML.Trusted
lets you enable forms, but that enables them altogether. For some discussion on altering the behaviour, see the thread "Anyone have a config that allows form elements?" on the HTML Purifier discussion forum,例如:
The forms would only be allowed to have an empty action; they always submit to themselves.
默认情况下不是:您必须对其进行编码。
How would I enable it?
可能最简单的事情是 copy-paste 来自
HTMLPurifier/HTMLModule/Forms.php
的定义,然后适当地调整它们。请注意,这些定义假设用户是受信任的,因此请仔细检查您允许的所有字段。