使用ALLOW-FROM URI时的Nginx-X-Frame-Options错误:“add_header”指令中的未知指令/无效参数数量

问题描述 投票:0回答:2

操作系统:Ubuntu 14.04

Nginx:nginx版本:nginx / 1.4.6(Ubuntu)

为了在浏览器端为框架提供基于Clickjacking的安全性,可以用3种不同的方式设置X-Frame-Options标头选项。

  • DENY
  • SAMEORIGIN
  • ALLOW-FROM <uri>

PS:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet(用于兼容性矩阵)和https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options(注意:不要将Apache与Nginx混合用于配置部分)。

我想在我的Jenkins机器上启用框架/ iframe的显示(由Log parser plugin生成/提供),即在Jenkins工作的仪表板上。欲了解更多信息,你可以在这里看到一些背景:Jenkins Log parser plugin - parsed console log page is not showing Load denied by X-Frame-Options does not permit framing ERR_BLOCKED_BY_RESPONSE

为此,我需要确保,我的NGINX配置中没有以下行用于jenkins https conf文件/或者您可以将其提交。

add_header X-Frame-Options DENY;

评论此行和框架现在可以在您的浏览器中呈现正常,即在作业的仪表板上,但这样做会带来安全问题。

要实现第二个选项,请确保删除/替换上面的行或确保您的NGINX配置文件中的以下行EXIST为Jenkins https conf。

add_header X-Frame-Options SAMEORIGIN;

现在,第3种方法在https://_URI_value之前开始使用带有/不带双引号的ALLOW-FROM ALLOW-FROM,并在URL部分之后结束。

这将告诉NGINX允许渲染来自给定URI的帧(在我的情况下是JENKINS URL),所以我尝试了以下内容:

   #ALLOW-FROM https://my.company.jenkins.com/
   #add_header X-Frame-Options ALLOW-FROM https://my.company.jenkins.com/
   #add_header X-Frame-Options "ALLOW-FROM https://my.company.jenkins.com/"

如果我只启用第一行(如上面列出的第3种方法)并运行sudo service nginx restart; sleep 1; tail -1 /var/log/nginx/error.log,那么我得到以下输出/错误。

 * Restarting nginx nginx                                                                                                                               [fail]
2017/08/24 15:27:39 [emerg] 127120#0: unknown directive "ALLOW-FROM" in /etc/nginx/sites-enabled/jenkins_https.conf:23

如果我只启用第2行或第3行(如上面列出的第3种方法),那么我将获得第2 /第3行的以下输出/错误。

 * Restarting nginx nginx                                                                                                                               [fail]
2017/08/24 15:29:49 [emerg] 127189#0: invalid number of arguments in "add_header" directive in /etc/nginx/sites-enabled/jenkins_https.conf:23

我怎样才能成功,在重启成功时使用nginx配置文件中的ALLOW-FROM语法而没有上述失败,它允许帧/ iframe呈现来自给定的URI / URL?

PS:使用add_header X-Frame-Options SAMEORIGIN;,我的问题已经解决,但我主要是在寻找为什么ALLOW-FROM <URI/URL>语法不起作用并给我上述错误消息。

nginx iframe server frames x-frame-options
2个回答
3
投票

上面接受的语法不起作用。

预期的语法是

add_header X-Frame-Options "allow-from https://my.example.com/";

在版本nginx / 1.11.9和nginx / 1.15.9上成功测试


0
投票

您可能已经想到了这一点,但仅供后人使用:要在add_header中指定allow-from,请使用以下语法:

add_header "allow-from https://my.example.com/";

© www.soinside.com 2019 - 2024. All rights reserved.