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

ant*_*rea 27 css content-security-policy

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

ant*_*an1 33

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

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

  1. 他们可以把你的页面变成粉红色,让它看起来很傻.
  2. 他们可以修改您的网页文字,让您看起来像是在说冒犯可能冒犯您的读者群的攻击性内容.
  3. 他们可以使用户生成的内容,例如他们提供的链接出现在人们希望看到用户内容的正常位置之外,使其显得正式.(例如,用您自己的链接替换您网站上的"登录"按钮).
  4. 使用精心设计的样式规则,他们可以将页面上包含的任何信息发送到外部域,并对用户进行恶意暴露或以其他方式使用该数据.

尽管unsafe-inline提供了确保您的其他CSP规则永远不允许任何类型的请求转到不受信任或通配符域的第四个示例,其中泄露到外部域的信息可以完全被阻止.但是如果你错过了某个地方的某个样式属性,那么前三个将永远是可能的.

几年前,Mike West为CSSConf 做了一个很好的谈话,以获得更多的例子.

  • 对于任何访问此页面寻找 CSP 信息的人来说,X-XSS-Protection 被认为已经过时,Firefox 从未实现它,Chrome 也放弃了支持。 (7认同)
  • 他们难道不能通过修改类来轻松搞乱您的页面吗?我仍然没有看到好处。 (3认同)
  • @InterLinked 根据 OWASP,X-XSS-Protection 标头甚至可能在客户端引入额外的安全问题。“因此,建议将标头设置为 X-XSS-Protection: 0 以禁用 XSS Auditor,并且不允许它采用浏览器处理响应的默认行为。” 请改用 CSP。来源:https://owasp.org/www-project-secure-headers/#x-xss-protection (2认同)