代码之家  ›  专栏  ›  技术社区  ›  jcoder

允许用户编辑CSS是否安全?

  •  7
  • jcoder  · 技术社区  · 15 年前

    我有一个Web应用程序,我想允许最终用户通过上传自己的CSS文件来定制网站的外观。

    这个有安全问题吗?我看不到任何明显的东西,但我想我会问,以防我错过了什么。

    7 回复  |  直到 15 年前
        1
  •  10
  •   Sam Becker    15 年前

    JavaScript可以在CSS中执行,您必须确保正在使用一些筛选。

    我还看到一些事件,有人用一个透明的像素覆盖了一个微软控制的站点的整个页面,链接到一个恶意站点。单击任意位置会触发攻击者站点的显示。

    但是,如果用户只看到他或她自己的CSS,并且他们无法让其他人看到他们所做的事情,那么这是安全的。否则,某种白名单或降价会起作用。

        2
  •  6
  •   jammycakes    15 年前

    简短的回答:不是。IE中的HTC和Mozilla中的XBL都是潜在的攻击载体。一次这种性质的黑客被用来窃取30000个MySpace密码。

    资料来源:Simon Willison, Web Security Horror Stories

        3
  •  3
  •   ATorras    15 年前

    我不会这样做,因为CSS可以显示 an image that could exploit some OS vulnerability 例如。

    当做。

        4
  •  2
  •   Kobi    15 年前

    根据您的服务器和配置,可能可以从CSS文件运行服务器端代码(不过,这不是我知道的服务器上的默认行为)。

        5
  •  2
  •   n1313    15 年前

    简短回答: . 首先想到的坏事情是MSIE表达式。

        6
  •  2
  •   Paul Dixon    15 年前

    如果所有网站用户都可以使用这些CSS文件,而不仅仅是上传者,那么 XSRF 矢量-您可以在CSS中包含到异地资源的链接,这些链接对请求它们的用户执行“不希望”的效果。

        7
  •  2
  •   user151323    15 年前

    如果一个使用自定义CSS的用户将屏幕拧紧到无法找到控件来重新设置的程度,那么您可能会获得客户支持开销。在这种情况下,您作为管理员将需要手动执行。

    对于这种情况,一个可能的解决方案。安排特定的URL以重置样式。类似:

    http://mysite.com/users/234234/reset
    

    当用户要修改样式以记住这个URL时,向他提供建议,如果事情失控,就按照它操作。点击后,自定义样式将被停用。