如果我们必须使用未知的用户css文件,应该采取什么措施

时间:2010-09-30 08:17:07

标签: php css upload

我想让用户上传一个css文件,并按照自己的配置控制网站的配色方案和其他内容。

所以在构建它之前我想知道我应该注意什么?

2 个答案:

答案 0 :(得分:4)

CSS注入几乎与脚本注入一样好。你在IE6-7中有expression()(后来在兼容性视图中),IE中你有behavior:(HTC),你在Firefox中有-moz-binding:,你'我得到了content:来注入文本,有时候,大多数是在没有阻止它的旧浏览器中,你有url(javascript:...)。即使没有这些,你也只能通过视觉用户界面欺骗获得相当大的风险。

只要用户样式表仅限于创建它的用户,用户就只能妥协。用户开始共享样式表时会出现问题。您可能可能会禁止用户选择与其他用户相同的外部样式表地址来阻止此操作。

答案 1 :(得分:2)

安全性:所谓的“CSS Expressions”允许CSS中的JavaScript代码。虽然它们现在已被弃用,但它们仍然可以在IE5-7和IE的兼容模式下工作。

我建议从样式表中删除任何expression()规则。它没有任何实际意义,在普通浏览器中不起作用,在IE中它向CSS引入了可执行代码。