如何使用用户添加外部css(如myspace)来管理安全性

ped*_*ete 5 css security xss

我有一个页面,它已被请求我允许一些用户通过CSS自定义.

我很高兴这样做,但我想弄清楚如何使其安全.没有很多样式表将应用于页面,但我原本以为如果我只是检查页面是css扩展名,那么我会安全.

但是,我所做的研究表明xss很容易通过css完成.但我还没有找到任何关于如何安全地包含用户生成的外部CSS的资源.

有没有人有这方面的建议或资源?

MySpace和其他一些网站一起设法做到这一点,但我看不出如何确保这是安全的.

我在外部css所在的页面上没有任何"安全"用户数据.但我确实为搜索获得了一些变量.

---------------- sliky的回应之后的其他数据----------------------

我不打算让每个用户都添加外部CSS.但是,css变量可以由特殊的合格用户设置,一旦该变量可用,基本上任何人都可以随意设置它.获取该变量的唯一方法是自己传播URL,所以也许我过分关注安全性,但我对此表示怀疑.

我可以设置它,以便页面不用外部样式表编制索引,但仍然关心如何维护最终用户的安全性.

我会在我的网站上有一个链接 http://mysite.com/page?useracct=12343&extcss=http://location/of/css.css

我设置了useracct,所以只有我允许启用不同css的用户才能为他们的页面创建链接.在我的网站上,我将使用css页面链接到该用户帐户.

所以有人不能随便说出 http://mysite.com/page?extcss=http://new/dangerous/css.css

但是,他们可以创建链接 http://mysite.com/page?useracct=12343&extcss=http://new/dangerous/css.css 有人进入该页面的唯一方法就是创建危险的那个人css转发了这个链接.

我想如果我对外接手进行散列和腌制,它可能更安全.也许那是最好的方式?

Aid*_*ell 4

使用具有 CSS 库的语言,或者编写一个解析器从 CSS 构建类似 AST 的结构,然后检查是否存在可疑内容。

这可能比听起来更难,像 div 大小(吞没整个页面)、浮动和 z 顺序之类的东西将很难管理,并且您可能必须对可以提供的值有限制。

一个好主意

创建可转换为 CSS 的基于 XML 的主题架构。允许用户上传图片+XML生成主题。

XML 更容易控制。

PHP CSS 解析器Python CSS 解析

祝你好运