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

Dan*_*ngs 3 html css security

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

Sil*_*Fox 5

是的,有一些XSS风险需要考虑。XSS 不会使用恶意代码直接攻击您的网络服务器。这是通过系统的其他用户自己的浏览器对他们进行的攻击。基本上,它是一个基于浏览器的代码执行缺陷,尽管受到 JavaScript 功能的限制(虽然很多,但无法逃离浏览器沙箱)。

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

但仍存在以下风险:

  • JavaScriptexpression指令允许将 JavaScript 插入到 CSS 样式表中。请注意,这仅影响 Internet Explorer 版本 8 及更早版本。
  • url指令可以允许JavaScript:Internet Explorer 6 上的样式 URL。
  • 脚本执行 via-moz-binding可在 Firefox 2 和 3 上使用。自 Firefox 3 以来,Google 浏览器安全手册似乎没有更新。这篇文章表明此问题现已修复,因此必须可以从您自己的域读取 XML 文件。XBL 在当前版本的 Firefox 中似乎无法实现。
  • 在 Internet Explorer 10 及更早版本中,HTML 组件允许在 CSS 中执行脚本。

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