如何在 nginx 中正确设置 X-Frame-Options Allow-From
Posted
技术标签:
【中文标题】如何在 nginx 中正确设置 X-Frame-Options Allow-From【英文标题】:How to set X-Frame-Options Allow-From in nginx correctly 【发布时间】:2015-08-24 05:26:27 【问题描述】:我试图在 nginx 中设置 ALLOWED-FROM 但到目前为止我尝试的所有设置都导致以下 Chrome 错误:
Invalid 'X-Frame-Options' header encountered when loading 'https://domain.com/#/register': 'ALLOW-FROM domain.com' is not a recognized directive. The header will be ignored.
我尝试的这些选项是:(也尝试使用带有 https://
前缀的 FQDN)
add_header X-Frame-Options "Allow-From domain.com";
add_header X-Frame-Options "ALLOW-FROM domain.com";
add_header X-Frame-Options "ALLOW-FROM: domain.com";
add_header X-Frame-Options "Allow-From: domain.com";
add_header X-Frame-Options ALLOW-FROM "domain.com";
add_header X-Frame-Options ALLOW-FROM domain.com;
【问题讨论】:
Chrome 不支持allow-from
。 developer.mozilla.org/en-US/docs/Web/HTTP/…
【参考方案1】:
在 Chrome 和 Safari 中,您需要使用 Content-Security-Policy
Content-Security-Policy: frame-ancestors domain.com
您可以在此网站上查看更多详细信息:
https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives
【讨论】:
那不是一个有效的 nginx 指令。实际的指令是add_header Content-Security-Policy "frame-ancestors domain.com";
。【参考方案2】:
一些较旧的浏览器不支持内容安全策略,因此正确的语法是
add_header X-Frame-Options "ALLOW-FROM domain.com";
并且新版浏览器支持内容安全策略
add_header Content-Security-Policy "frame-ancestors domain.com";
您应该同时使用这两个标头,以确保所有浏览器都支持
要了解更多浏览器对 X-Frame-Options 和内容安全策略的支持(CSP 浏览器支持数据已过时,写于 2017 年 12 月 19 日。目前所有主要浏览器都支持 CSP): https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet
【讨论】:
以上是关于如何在 nginx 中正确设置 X-Frame-Options Allow-From的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 nginx 以正确地为 React 和 Django 提供服务
如何抑制 X-Frame-Options SAMEORIGIN 响应标头?