Apache上的X-Frame选项

sxpgvts3  于 2022-11-16  发布在  Apache
关注(0)|答案(6)|浏览(172)

我试图允许一些特定的域通过iframe访问我的网站

Header set X-Frame-Options ALLOW-FROM https://www.example.com

我知道这可以通过将上面的行添加到Apache服务器的配置中来完成。
两个问题。
1.应该添加到哪个配置文件?如果不是同一个文件,则为同时在Unix和Windows上运行的Apache
1.虽然启用了all-from,但我仍然希望能够从我自己的域运行一些iframe。我可以在allow-from后面添加以下行吗?
标头集X-框架-选项SAMEORIGIN
或者我应该在all-from中添加我自己的域,即

Header set X-Frame-Options ALLOW-FROM https://www.example.com, http://www.my-own-domain.example
am46iovg

am46iovg1#

1.您可以添加到.htaccesshttpd.confVirtualHost部分

  1. Header set X-Frame-Options SAMEORIGIN这是最佳选项
    并非所有浏览器都支持Allow from URI。参考:X-Frame-Options on MDN
kr98yfug

kr98yfug2#

参见错误响应上的X-Frame-Options标题
您可以简单地在.htaccess中添加以下行

Header always unset X-Frame-Options
p8ekf7hl

p8ekf7hl3#

我在HTTP <VirtualHost *:80>和HTTPS <VirtualHost *:443>虚拟主机块中添加了以下指令:

ServerName example.com
ServerAlias www.example.com

Header always unset X-Frame-Options
Header set X-Frame-Options "SAMEORIGIN"

这背后的原因是什么呢?默认情况下,如果设置了X-Frame-Options,服务器不会重置X-Frame-Options头,所以我们需要首先删除默认值,在我的例子中是DENY,然后使用下一个规则将其设置为所需的值,在我的例子中是SAMEORIGIN。当然,您也可以使用Header set X-Frame-Options ALLOW-FROM ...规则。

x3naxklr

x3naxklr4#

这对我在所有浏览器上都有效:
1.用我所有的JavaScript创建了一个页面
1.在同一台服务器上创建了第二页,并使用对象标记嵌入了第一页。
1.在我的第三方网站上,我使用了Object标签来嵌入第二页。
1.在原始服务器上的public_html文件夹中创建了一个.htaccess文件,并将Header unset X-Frame-Options放入其中。

cxfofazt

cxfofazt5#

我发现,如果httpd服务器中的应用程序有这样一条规则:“如果X-Frame-Options头存在并且有值,就不要管它;否则添加报头X-Frame-Options:SAMEORIGIN”,则httpd.conf mod_headers规则(如“始终取消设置X-Frame-Options标头”)将无法满足要求。SAMEORIGIN值将始终到达客户端。
为了解决这个问题,我添加了两个而不是一个mod_headers规则(在最外层的httpd.conf文件中):

Header set X-Frame-Options ALLOW-FROM http://example.com early
Header unset X-Frame-Options

第一个规则告诉任何内部请求处理程序,其他代理已经承担了防止点击劫持的责任,它可以跳过保存世界的尝试,它以“早期”处理运行;第二个规则去掉完全不需要的X-Frame-Options头,它以“后期”处理运行。
我还添加了适当的Content-Security-Policy头文件,这样世界仍然受到保护,而来自可信站点的多源JavaScript仍然可以运行。

avwztpqn

avwztpqn6#

您必须首先在服务器中启用mod_headers
sudo a2enmod标头
sudo服务apache2重新启动

相关问题