如何在nginx中正确设置X-Frame-Options Allow-From

How to set X-Frame-Options Allow-From in nginx correctly

我试图在 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 和 Safari 中你需要使用 Content-Security-Policy

Content-Security-Policy: frame-ancestors domain.com

您可以在本站查看更多详情:

https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives

一些较旧的浏览器不支持内容安全策略,因此正确的语法是

add_header X-Frame-Options "ALLOW-FROM domain.com";

并且新版浏览器支持内容安全策略

add_header Content-Security-Policy "frame-ancestors domain.com";

您应该同时使用 headers 以确保所有浏览器都支持

了解更多浏览器对 X-Frame-Options 和内容安全策略的支持(CSP 浏览器支持数据已过时,写于 12/19/2017。目前所有主流浏览器都支持 CSP): https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet