X-Frame-Options 和 Content-Security-Policy 标头之间的安全区别?

Cis*_*tin 2 security http http-headers x-frame-options content-security-policy

这些 HTTP 标头似乎做同样的事情,尽管后者具有更大的灵活性。

Content-Security-Policy 是否提供任何额外的安全性?

小智 5

X-FRAME-OPTIONS 允许您保护您的网站免受其他网站的陷害。

例如,X-FRAME-OPTIONS: SAMEORIGIN允许您的站点仅嵌入到同一域的 iframe 中。需要防止点击劫持攻击

但是Content-Security-Policy有完全不同的目的。CSP规范说:

内容安全策略是一种声明性策略,它让 Web 应用程序的作者(或服务器管理员)通知客户端应用程序期望加载资源的来源。

因此,它的主要目的是通过不允许浏览器从未知域加载资源(脚本等)来保护您的站点免受对用户的 XSS 攻击。

  • [CSP 2 的 `frame-ancestors`](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#frame-ancestors) 与 `X-FRAME-OPTIONS` 有一些重叠,因为这也可以防止框架和点击劫持攻击。 (9认同)
  • [CSP 2 规范](https://www.w3.org/TR/CSP2/#frame-ancestors-and-frame-options) 实际上明确指出它弃用并替换了 X-Frame-Options。不只是重叠。 (5认同)