CSP style-src:'unsafe-inline' - 值得吗?

时间:2015-06-04 20:37:55

标签: css content-security-policy

目前我在我的所有网站上使用Modernizr,结果是因为它的工作方式,它需要允许unsafe-inline个样式。我已经不允许内联脚本和脚本的unsafe-eval。对于允许内联样式有哪些安全风险感到好奇?

1 个答案:

答案 0 :(得分:30)

允许内联样式使您容易受到“其他XSS”的影响。跨站点样式攻击。

这里的想法是,用户可以在文档中注入样式属性的任何地方,他们都可以按照自己的方式修改页面的外观。我将通过增加严重性来列出一些潜在的攻击:

  1. 他们可以把你的页面变成粉红色,让它看起来很傻。
  2. 他们可以修改您网页的文字,让您看起来像是在说冒犯可能冒犯您的读者群的冒犯。
  3. 他们可以使用户生成的内容,例如他们提供的链接出现在人们期望看到用户内容的正常位置之外,使其显得正式。 (例如,使用自己的链接替换您网站上的“登录”按钮)。
  4. 使用精心设计的样式规则,他们可以将页面上包含的任何信息发送到外部域,并以可能的方式对用户进行暴露或以其他方式使用该数据。
  5. 尽管unsafe-inline确保您的其他CSP规则永远不允许任何类型的请求转到不受信任或通配符域,但第四个示例可能会完全阻止泄露到外部域的信息。但是,如果你错过了某个地方的某个样式属性,那么前3个将永远是可能的。

    几年前,

    Mike West对CSSConf做了很好的talk以获得更多示例。