点击劫持防护
根据需要使用 HTTP 标头
Content-Security-Policy: frame-ancestors 是首选,因为它提供了对网站嵌入的更细粒度的控制。但是,它在 IE11 及更早版本、Chromium 版本之前的 Edge、Safari 9.1(桌面版)和 Safari 9.2(iOS 版)中不受支持。
X-Frame-Options 的粒度较低,但它在上面列出的旧版浏览器中受支持。
建议同时使用两者,除非您知道不需要支持旧版浏览器。
除非您确实需要,否则应拒绝所有嵌入您网站的尝试。当需要嵌入时,请提供必要的最小嵌入权限。需要在
每个设置的等效选项如下所示
CSP 值
X-Frame-Options 值
描述
frame-ancestors 'none'
DENY
拒绝所有嵌入尝试。
frame-ancestors 'self'
SAMEORIGIN
仅允许同源嵌入尝试。
frame-ancestors https://example.org
ALLOWFROM https://example.org
允许来自指定域的嵌入尝试。
注意:X-Frame-Options: ALLOWFROM https://example.org 语法已弃用,大多数浏览器都会忽略它。建议在这种情况下改为设置 DENY,和/或依赖于 CSP 等效项。
注意:使用 SameSite 指令设置 Cookie 在依赖于用户身份验证的点击劫持情况下也很有用。