【发布时间】:2016-02-02 19:34:39
【问题描述】:
我们的软件最近因一项允许用户使用 HTML 和 CSS 设置自己的帖子样式的功能而受到 XSS 攻击。 是否可以在清理其他内容的同时允许用户对自己的论坛帖子进行样式设置?
这是我们目前的代码:
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”标签只是为了确保正确过滤。
【问题讨论】:
-
你能提供它不工作的html吗
-
如果你不介意它真的很长,我可以。 :P
-
不,只是询问其失败的特定标签
-
添加了 HTML 代码。
-
你使用 HTML Purifier 吗? htmlpurifier.org