我正在写一个很小的网页,其目的是构架其他几页,只是将它们合并到一个浏览器窗口中,以便于查看。我想框住的页面中有几页被禁止装帧,并抛出“拒绝显示文档,因为X-Frame-Options禁止显示”。Chrome中的错误。我了解这是一个安全限制(有充分的理由),并且无权对其进行更改。
是否有其他成帧或非成帧的方法来显示单个窗口中不会被X-Frame-Options标头绊倒的页面?
我遇到了类似的问题,我想在iframe中显示来自我们自己网站的内容(作为带有Colorbox的灯箱样式对话框),并且在服务器端有一个服务器范围的“ X-Frame-Options SAMEORIGIN”标头源服务器阻止它加载到我们的测试服务器上。
这似乎没有记录在任何地方,但是如果您可以编辑要内联的页面(例如,它们是您自己的页面),只需发送另一个带有任何字符串的X-Frame-Options标头即可SAMEORIGIN或DENY命令。
例如。对于PHP,
<?php
header('X-Frame-Options: GOFORIT');
?>
页面顶部的内容将使浏览器将两者结合起来,从而产生一个标题为
X-Frame-Options SAMEORIGIN, GOFORIT
...并允许您将页面加载到iframe中。当在服务器级别设置了初始SAMEORIGIN命令时,这似乎可行,并且您希望在逐页的情况下覆盖它。
祝一切顺利!
我在网站周围有一个框架。在我的网站上,我将重定向到Instagram以获取OAUTH。由于Instagram发送
X-Frame-Options: SAMEORIGIN
,因此无法在框架内执行此操作。您必须使用一个弹出窗口。使用PHP,最好在可以使用新
header_remove
功能的情况下使用新功能(> = 5.3.0)。或者,如果您想从整个目录中删除X-Frame-Options,则可以编辑.htaccess。只需添加以下行:
Header always unset X-Frame-Options
@cawecoy:是的,整个问题在于它是无效的。它依赖于浏览器忽略无效的标头和“失败打开”,这是未指定的行为,相当依赖。
GOFORIT
(或其他随机的任意无效令牌)故意破坏服务器应用的安全措施;如果您可以自己控制服务器(对于任何真正的公共服务都应这样做),那么正确的做法就是将服务器设置为不首先设置标头。这似乎在Chrome中不再起作用。无效的值导致该值默认为DENY。