我们的软件最近受到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”标签只是为了确保正确过滤。
答案 0 :(得分:1)
编辑3:使用以下设置
$config->set('HTML.AllowedAttributes', '*.style');