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

时间:2015-05-29 15:24:25

标签: html css security

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

style.css

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

attack.html

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

答案 3 :(得分:0)

是的,需要考虑一些XSS风险。 XSS不会直接使用恶意代码攻击您的网络服务器。它是通过自己的浏览器攻击您系统的其他用户。基本上,它是一个基于浏览器的代码执行缺陷,虽然只能通过JavaScript可以做什么(尽管如此,禁止从浏览器沙箱中逃脱)。

当您让他们编辑CSS 文件中显示的文本时,这可以缓解一些仅在CSS嵌入HTML文档时可能发生的攻击(例如通过STYLE=""属性和<style>标签)。

但是,仍然存在以下风险:

  • JavaScript expression指令允许将JavaScript插入到CSS样式表中。请注意,这仅影响Internet Explorer 8及更早版本。
  • url指令可以允许Internet Explorer 6上的JavaScript:样式网址。
  • Firefox 2和3上提供了通过-moz-binding执行脚本。自Firefox 3以来,Google Browser Security Handbook似乎没有更新。This post表示现已修复此问题,以便XML文件必须可以从您自己的域中读取。在当前版本的Firefox中似乎不可能使用XBL。
  • 在Internet Explorer 10及更早版本中HTML Components允许在CSS中执行脚本。

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