CSS文件可以执行恶意代码吗?



我目前有一个允许管理员在网站上更改基本CSS属性的表单。我正在考虑为高级管理员创建一个表单,该表单将在文本区域内显示整个CSS文件,并允许他们自由编辑。我不担心文件被擦除,因为它很容易恢复。我担心的是,有人可能会在CSS文件中添加一些代码,这可能会对web服务器造成重大损害。是否有可能从CSS文件执行恶意代码?

是的,有一些XSS风险需要考虑。XSS不会用恶意代码直接攻击您的web服务器。它是通过您系统的其他用户自己的浏览器对其进行的攻击。基本上,这是一个基于浏览器的代码执行缺陷,尽管受到JavaScript所能做的限制(尽管相当多,除非从浏览器沙箱中逃脱)。

当你让他们编辑CSS 文件中呈现的文本时,这减轻了一些只有当CSS嵌入到HTML文档中时才可能发生的攻击(例如通过STYLE=""属性和<style>标记)。

然而,以下风险仍然存在:

  • JavaScript expression指令允许将JavaScript插入到CSS样式表中。请注意,这只影响Internet Explorer版本8或更早。
  • url指令可以在Internet Explorer 6中允许JavaScript:样式的url。
  • 在Firefox 2和3上可以通过-moz-binding执行脚本。谷歌浏览器安全手册似乎从Firefox 3以来就没有更新过。这篇文章指出,现在这是固定的,所以XML文件必须从您自己的域可读。当前版本的Firefox似乎不支持XBL。
  • 在Internet Explorer 10及更早版本的HTML组件允许在CSS中执行脚本。

注意,允许用户修改你的CSS让他们能够自由定位文本。这将使恶意用户能够用其CSS代码模仿受信任的UI元素,并可能用新呈现的页面欺骗用户。这在很大程度上取决于当前的功能和站点其余部分的意图。一定要记住这一点。

如果他们有修改权限,就可以。下面的链接描述了xss和css(跨站点脚本)。他们可以重定向你的背景作为一个例子http://www.acunetix.com/websitesecurity/cross-site-scripting/

如果他们可以访问css文件,他们可以将其链接到另一个包含恶意内容的文件

如果style.css使用错误的内容类型标头,可能存在xss漏洞。

style.css

<script>
alert(document.cookie)
</script>

attack.html

<iframe src="style.css"></iframe>

最新更新