Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 包含外部CSS文件是安全的,还是会导致代码注入?_Javascript_Css_Security_Xss - Fatal编程技术网

Javascript 包含外部CSS文件是安全的,还是会导致代码注入?

Javascript 包含外部CSS文件是安全的,还是会导致代码注入?,javascript,css,security,xss,Javascript,Css,Security,Xss,我正在开发一个网站,客户可以通过将其嵌入到他们网站的iframe中来使用它。我想让他们能够自定义内容的样式,这样他们就可以使其与网站的样式相适应 我的基本想法是让他们给我一个CSS文件的URL,我应该将它包含在我提供给他们的页面中,以填充iframe。据我所知,这是安全的,但我不是特别熟悉CSS(尤其是较新的版本),所以我想验证一下 有没有什么方法可以让人构建一个CSS文件,让他们将代码注入到我的站点,或者访问我的域的cookies之类的东西?这真的安全吗,还是我需要想出一个不同的解决方案?不,

我正在开发一个网站,客户可以通过将其嵌入到他们网站的iframe中来使用它。我想让他们能够自定义内容的样式,这样他们就可以使其与网站的样式相适应

我的基本想法是让他们给我一个CSS文件的URL,我应该将它包含在我提供给他们的页面中,以填充iframe。据我所知,这是安全的,但我不是特别熟悉CSS(尤其是较新的版本),所以我想验证一下


有没有什么方法可以让人构建一个CSS文件,让他们将代码注入到我的站点,或者访问我的域的cookies之类的东西?这真的安全吗,还是我需要想出一个不同的解决方案?

不,这是不安全的<代码>表达式和
-moz绑定
是通过CSS在某些浏览器上导致任意脚本执行的已知方法。遭受了一次非常公开的XSS攻击,这是由于用户提供的CSS中嵌入了JavaScript

随着Mozilla决定允许通过CSS执行任意JavaScript,除了我们已经采取的解决方案之外,没有其他可行的解决方案

发件人:

在某些浏览器上,特制的CSS样式表可以在全局范围内执行未初始化的javascript

背景

CSS包括几个用于更改周围标记和执行表达式的机制

IE有一个允许执行任意javascript的扩展。
表达式
属性在中介绍

利用动态属性的强大功能,现在不仅可以将属性值声明为常量,还可以将其声明为公式。。。对于脚本,动态属性可以是任何合法的JScript或Microsoft Visual Basic脚本编辑(VBScript)语句。

绑定
允许绑定到外部指定的脚本 &

-moz绑定
允许通过XML接口进行绑定(也使用数据:URL)

假设

不受信任的代码可以生成样式元素或样式属性,或者添加任意CSS规则,并创建触发这些规则的DOM元素

版本

IE 5和更高版本(但不是“标准模式”中的IE 8或更高版本)

Mozilla/Firefox,版本未知


我认为你最好允许用户将自定义样式粘贴到文本区域,然后在将其包含在视图中之前,你可以验证它实际上是CSS并且没有任何危害。太棒了,感谢所有的背景。看起来我必须为他们提供另一种机制来提供样式,我可以先对其进行消毒。现在,为了弄清楚如何清理CSS…Caja项目保留了一些有用的CSS属性和值。它还内置了Java解析器和消毒器。Caja已迁移到Github,可以在此处找到白名单: