我有一个Web应用程序,我希望允许最终用户通过上传自己的CSS文件来自定义网站的外观。
这样做是否存在任何安全问题?我没有发现任何明显的问题,但考虑到可能会遗漏一些情况,所以想请教一下。
这样做是否存在任何安全问题?我没有发现任何明显的问题,但考虑到可能会遗漏一些情况,所以想请教一下。
JavaScript可以在CSS中执行,但必须确保使用了一些过滤器。
我曾经看到过这样的情况:有人在Microsoft控制的网站上覆盖整个页面,用一个透明像素链接到恶意网站。点击任何地方都会触发攻击者的网站出现。
如果用户只能看到自己的CSS,而且他们没有办法让别人查看他们所做的事情,那么这可能是安全的。否则,某种白名单或标记语言将起作用。
根据您的服务器和配置,可能可以从CSS文件运行服务器端代码(但是,在我所知道的服务器上,这不是默认行为)。
简短回答: 不。首先想到的是 MSIE 表达式带来的问题。
如果用户使用自定义CSS将屏幕调整到无法找到重置控件的程度,您可能会遇到客户支持方面的问题。在这种情况下,您作为管理员需要手动进行重置。
针对这种情况,有一个可能的解决方案。安排一个特定的URL来重置样式。例如:
http://mysite.com/users/234234/reset
当用户要修改样式时,建议他记住此URL,如果情况失控,只需按照此URL进行操作。一旦点击,自定义样式将被停用。
[-ms-]behavior
和Firefox中的-moz-binding
。 - bobince