我有一个Web应用程序,我希望允许最终用户通过上传自己的css文件来自定义网站的外观。
这有什么安全问题吗?我看不到任何明显的东西,但想到我会问,如果有什么我错过了。
答案 0 :(得分:10)
Javascript可以在CSS中执行,你必须确保使用一些过滤。
我还看到有人在微软控制的网站上覆盖整个页面的事件,其中包含透明像素,链接到恶意网站。点击任意位置会触发攻击者网站显示。
然而,如果用户只看到他或她自己的CSS,那么这可能是安全的,并且他们无法让别人查看他们所做的事情。否则某种白名单或降价会起作用。
答案 1 :(得分:6)
简短回答:不,不是。 IE中的HTC和Mozilla中的XBL都是潜在的攻击媒介。这种性质的黑客被用来抢回30,000个MySpace密码。
资料来源:Simon Willison,Web Security Horror Stories
答案 2 :(得分:3)
我不会这样做,因为CSS可以在示例中显示an image that could exploit some OS vulnerability。
问候。
答案 3 :(得分:2)
如果使用自定义CSS的用户将屏幕固定到可能无法找到重置控件的控件,则可能会获得客户支持开销。在这种情况下,您作为管理员需要手动完成。
对于那种情况,可能的解决方案。安排特定的Url重置样式。类似的东西:
http://mysite.com/users/234234/reset
当用户修改样式以记住此Url时,建议用户,如果事情已经失控,请关注它。点击后,自定义样式将被停用。
答案 4 :(得分:2)
根据您的服务器和配置,可以从CSS文件运行服务器端代码(但是,这不是我所知道的服务器上的默认行为)。
答案 5 :(得分:2)
简短回答:不。想到的第一件坏事是MSIE表达。
答案 6 :(得分:2)
如果这些CSS文件可供所有网站用户使用,而不仅仅是上传者,则可能有XSRF向量 - 您可以在CSS中包含指向非现场资源的链接,这些资源会执行“不良”效果请求他们的用户。