【发布时间】:2011-06-08 21:05:53
【问题描述】:
我正在构建一个应用程序,它允许用户为自己的个人资料(有点像 MySpace、Friendster 或 Blogger)输入自定义 CSS。
问题是我很难找到通过 CSS 净化 XSS 攻击的方法。我尝试使用 HTMLPurifier,但它不起作用。一个例子:
html {
expression: alert('xss');
}
body {
background-color: #FFF;
}
HTMLPurifier 允许这样做。
我需要对 HTMLPurifier 使用任何设置来使其无效吗?
谢谢!
更新
expression: 是通过 CSS 推送漏洞的唯一方法吗?如果是这样,正则表达式会比使用 HTMLPurifier 更有效吗?
【问题讨论】:
-
为什么首先允许使用“表达”?
-
由于用户将自己输入 CSS,我不能保证他们不会使用它。 “表达式:”是通过 CSS 运行漏洞的唯一方法吗?如果是这样,那么正则表达式会更有效吗?
-
这个答案展示了如何配置 HTMLPurifier 和 CSSTidy 来清理 CSS:stackoverflow.com/questions/3241616/…
标签: php css htmlpurifier xss