无法在同一nginx conf文件中使用X-Frame-Options“”覆盖X-Frame-Options“SAMEORIGIN”

bsxbgnwa  于 2022-11-22  发布在  Nginx
关注(0)|答案(1)|浏览(214)

我有一个nginx conf文件,其中包含一些我在几个网站上部署的通用行。

add_header X-Frame-Options "SAMEORIGIN";

对于某些网站,我想部署一些自定义行。例如,有几个网站,我想部署以下内容,因为我想允许它们在一些iframe中加载:

add_header X-Frame-Options "";

因此,这些网站的配置文件最终包含以下内容:

# some generic settings
add_header X-Frame-Options "SAMEORIGIN";
...

# some custom settings
add_header X-Frame-Options "";
...

问题是第二个add_header X-Frame-Options并没有覆盖第一个。我也试着切换设置,我把自定义的放在第一位,然后是通用的。所以conf文件看起来像这样:

# some custom settings
add_header X-Frame-Options "";
...
    
# some generic settings
add_header X-Frame-Options "SAMEORIGIN";
...

但同样,X-Frame-Options的设置是"SAMEORIGIN",而不是""
我的问题是:是否有可能覆盖X-Frame-Options add_header设置(一旦设置)?
我在Ubuntu 18上运行nginx 1.20。

p1tboqfb

p1tboqfb1#

您可以通过设置Content-Security-Policy frame-ancestors指令来覆盖它。对于除旧版浏览器之外的所有浏览器,这将覆盖X-Frame-Options。请尝试

Content-Security-Policy: frame-ancestors 'self' *;

您可能不需要'self'(等同于XFO SAMEORIGIN),您可以不使用它进行测试。

相关问题