HTML Purifier:允许用户样式

时间:2016-02-02 10:16:54

标签: html css

我们的软件最近受到XSS攻击的影响,该功能允许用户使用HTML和CSS设置自己的帖子样式。 是否可以在清理其他任何内容时允许用户设置自己的论坛帖子?

这是我们到目前为止的代码:

require_once 'module/purifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();

$config->set('Core.Encoding', 'ISO-8859-1');
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
$config->set('CSS.Trusted', true);
$config->set('HTML.Allowed', 'style,div[id|class]');

$purifier = new HTMLPurifier($config);
...
echo $purifier->purify($uheader); // $uheader contains the CSS code wrapped between "style" tags and a "div" class.

然而,在测试时我仍然无法看到我的自定义样式。

更新1

根据请求,HTML代码:

<img src="test"onerror="alert('XSS TEST')">
<style>
CSS_CODE_HERE
</style>
<div class="mainbar1-1">

我添加了“img src”标签只是为了确保正确过滤。

1 个答案:

答案 0 :(得分:1)

编辑3:使用以下设置

$config->set('HTML.AllowedAttributes', '*.style');