我正在写一个小网页,它的目的是框架其他一些页面,只是为了将它们合并到一个浏览器窗口中,以便于查看。一些页面,我试图框架禁止被框架,并抛出“拒绝显示文档,因为显示禁止X-Frame-Options.”错误在Chrome。我知道这是一个安全限制(有充分的理由),并且无法更改它。
是否有任何替代的框架或非框架方法来在单个窗口中显示页面,而不会被X-Frame-Options报头绊倒?
我正在写一个小网页,它的目的是框架其他一些页面,只是为了将它们合并到一个浏览器窗口中,以便于查看。一些页面,我试图框架禁止被框架,并抛出“拒绝显示文档,因为显示禁止X-Frame-Options.”错误在Chrome。我知道这是一个安全限制(有充分的理由),并且无法更改它。
是否有任何替代的框架或非框架方法来在单个窗口中显示页面,而不会被X-Frame-Options报头绊倒?
当前回答
我使用的是Tomcat 8.0.30,没有一个建议对我有效。当我们希望更新X-Frame-Options并将其设置为允许时,以下是我如何配置允许嵌入iframes:
进入Tomcat conf目录,编辑web.xml文件 添加下面的过滤器:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>hstsEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>ALLOW-FROM</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
重启Tomcat服务 使用iFrame访问资源。
其他回答
我有这个问题,并解决了它编辑httd.conf
<IfModule headers_module>
<IfVersion >= 2.4.7 >
Header always setifempty X-Frame-Options GOFORIT
</IfVersion>
<IfVersion < 2.4.7 >
Header always merge X-Frame-Options GOFORIT
</IfVersion>
</IfModule>
我把SAMEORIGIN改成了GOFORIT 并重新启动服务器
这就是解决办法!!
FB.Event.subscribe('edge.create', function(response) {
window.top.location.href = 'url';
});
这是唯一适用于facebook应用的方法!
我在mediawiki上遇到了同样的问题,这是因为服务器出于安全原因拒绝将页面嵌入到iframe中。
我写了
$wgEditPageFrameOptions = "SAMEORIGIN";
导入mediawiki PHP配置文件。
希望能有所帮助。
当我尝试在iframe中嵌入moodle 2时,我也有同样的问题,解决方案是站点管理►安全►HTTP安全并检查允许框架嵌入
我几乎尝试了所有的建议。然而,唯一真正解决这个问题的是:
在PHP文件所在的文件夹中创建一个.htaccess文件。 将这一行添加到htaccess: 报头总是不设置x帧选项
通过来自另一个域的iframe嵌入PHP之后应该可以工作。
此外,你可以在你的PHP文件的开头添加:
header('X-Frame-Options: ALLOW');
然而,在我的情况下,这是不必要的。