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

39

我正在尝试在Nginx中设置ALLOWED-FROM,但到目前为止我尝试的所有设置都导致了以下Chrome错误:

当加载'https://domain.com/#/register'时遇到无效的'X-Frame-Options'标头:'ALLOW-FROM domain.com'不是一个被认可的指令。该标头将被忽略。

我尝试的选项包括以下内容:(也尝试了带有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;

2
Chrome不支持allow-from。https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options#Browser_compatibility - Alexey Ten
2个回答

37

16
这不是有效的nginx指令。实际的指令应该是 add_header Content-Security-Policy "frame-ancestors domain.com"; - Dan Dascalescu

29

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

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

而新版本的浏览器支持内容安全策略(Content Security Policy)。

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

为确保在所有浏览器中得到支持,您应该同时使用两个标题。

了解更多关于 X-Frame-Options 和内容安全策略(CSP)的浏览器支持,请参见:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet。注意:CSP 浏览器支持数据已经过时,其写作日期为 2017 年 12 月 19 日。目前,所有主要的浏览器都支持 CSP。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接