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

Vad*_*imo 25 nginx cors

我试图在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;
Run Code Online (Sandbox Code Playgroud)

小智 27

在Chrome和Safari中,您需要使用Content-Security-Policy

Content-Security-Policy: frame-ancestors domain.com
Run Code Online (Sandbox Code Playgroud)

您可以在此网站上查看更多详细信息:

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

  • 那不是有效的nginx指令。实际的指令是“ add_header Content-Security-Policy“ frame-ancestors domain.com”;“。 (2认同)

Aek*_*sal 6

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

add_header X-Frame-Options ALLOW-FROM domain.com;
Run Code Online (Sandbox Code Playgroud)

新版本的浏览器支持内容安全策略

add_header Content-Security-Policy "frame-ancestors domain.com";
Run Code Online (Sandbox Code Playgroud)

您应该同时使用两个标头,以确保所有浏览器都支持

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