您使用什么样的HTMLPurifier设置来净化CSS?

时间:2011-06-02 08:07:26

标签: php css htmlpurifier xss

我正在构建一个应用程序,允许用户为自己的配置文件输入自定义CSS(有点像MySpace,Friendster或Blogger)。

问题是我很难找到通过CSS净化XSS攻击的方法。我尝试使用HTMLPurifier,但它不起作用。一个例子:

html {
    expression: alert('xss');
}

body {
    background-color: #FFF;
}

HTMLPurifier允许这样做。

HTMLPurifier是否需要使用任何设置才能使其无效?

谢谢!

更新
表达式: 是通过CSS推送漏洞的唯一方法吗?如果是这样,正则表达式会比使用HTMLPurifier更有效吗?

2 个答案:

答案 0 :(得分:2)

HTML Purifier对HTML输入进行操作,而不是CSS。话虽这么说,你可以通过在样式标签中包装样式表并启用%Filter.ExtractStyleBlocks来欺骗它来处理CSS样式表。你需要安装CSS Tidy。

更新。否。有很多方法可以提供CSS有效负载,而且搜索表达式还不够。

答案 1 :(得分:0)

$str = preg_replace("/expression[\s:\]+/", '', $str)将删除表达式字符串。

在我的oppinnion中,最好简单地“禁止”或以其他方式标记试图将此内容输入您网站的用户。 不知道使用CSS打破浏览器的其他方法,也许@Edward可以在这里帮助:)

相关问题