Gar*_*ley 412 iframe frames x-frame-options
我正在写一个小网页,其目的是构建其他一些页面,只需将它们合并到一个浏览器窗口中以便于查看.我试图框架的一些页面禁止被框架并抛出"拒绝显示文档,因为X-Frame-Options禁止显示".Chrome中的错误.我知道这是一个安全限制(有充分理由),并且无权更改它.
是否有任何替代框架或非框架方法在单个窗口中显示不会被X-Frame-Options标头绊倒的页面?
小智 208
我有一个类似的问题,我试图在iframe中显示来自我们自己网站的内容(作为带有Colorbox的灯箱式对话框),我们在那里有一个服务器范围的"X-Frame-Options SAMEORIGIN"标题源服务器阻止它加载到我们的测试服务器上.
这似乎没有在任何地方记录,但如果你可以编辑你正在尝试iframe的页面(例如,它们是你自己的页面),只需发送另一个X-Frame-Options标题,所有字符串都禁用SAMEORIGIN或DENY命令.
例如.对于PHP,推杆
<?php
header('X-Frame-Options: GOFORIT');
?>
Run Code Online (Sandbox Code Playgroud)
在页面顶部将使浏览器将两者结合起来,从而产生标题
X-Frame-Options SAMEORIGIN, GOFORIT
Run Code Online (Sandbox Code Playgroud)
...并允许您在iframe中加载页面.当初始SAMEORIGIN命令在服务器级别设置时,这似乎有效,并且您希望在逐页的情况下覆盖它.
祝一切顺利!
Wil*_*Wil 158
如果您收到YouTube视频的此错误,而不是使用完整网址,请使用共享选项中的嵌入网址.它看起来像http://www.youtube.com/embed/eCfDxZxTBW4
您也可以替换watch?v=用embed/这样http://www.youtube.com/watch?v=eCfDxZxTBW4变http://www.youtube.com/embed/eCfDxZxTBW4
Q S*_*dio 122
如果您在尝试嵌入Google地图时遇到此错误,则iframe需要添加&output=embed到源链接.
niu*_*ech 56
UPDATE 2019:您可以绕过X-Frame-Options在<iframe>仅使用客户端的JavaScript和我的X框,旁路 Web组件.这是一个演示:黑客新闻X-Frame-Bypass.(在Chrome和Firefox中测试过.)
Kev*_*lla 23
添加一个
target='_top'
Run Code Online (Sandbox Code Playgroud)
到我在Facebook标签中的链接修复了我的问题...
小智 21
如果您在尝试嵌入Vimeo内容时遇到此错误,请将iframe的src更改为
:https
://vimeo.com/63534746:http://player.vimeo.com/video/63534746
Moh*_*ari 13
当我尝试在iframe中嵌入moodle 2时,我遇到了同样的问题,解决方法是Site administration ? Security ? HTTP security检查Allow frame embedding
这是解决方案!
FB.Event.subscribe('edge.create', function(response) {
window.top.location.href = 'url';
});
Run Code Online (Sandbox Code Playgroud)
Facebook应用程序唯一有用的东西!
将外部网站加载到iFrame中的解决方案即使在x-frame选项上很难设置为在外部网站上拒绝.
如果您想将其他网站加载到iFrame中并且您收到Display forbidden by X-Frame-Options”错误,那么您实际上可以通过创建服务器端代理脚本来克服这个问题.
srciFrame 的属性可能有一个如下所示的网址:/proxy.php?url=https://www.example.com/page&key=somekey
然后proxy.php看起来像:
if (isValidRequest()) {
echo file_get_contents($_GET['url']);
}
function isValidRequest() {
return $_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['key']) &&
$_GET['key'] === 'somekey';
}
Run Code Online (Sandbox Code Playgroud)
这通过块,因为它只是一个GET请求,可能是一个普通的浏览器页面访问.
请注意:您可能希望提高此脚本的安全性.因为黑客可以通过代理脚本开始加载网页.
我尝试了几乎所有的建议.然而,真正解决这个问题的唯一方法是:
.htaccess在PHP文件所在的同一文件夹中创建一个.
将此行添加到htaccess:
Header always unset X-Frame-Options
从另一个域嵌入来自iframe的PHP应该可以使用了.
另外,您可以在PHP文件的开头添加:
header('X-Frame-Options: ALLOW');
Run Code Online (Sandbox Code Playgroud)
然而,在我的情况下,这不是必需的.
如果您使用Content-Security-Policy标头,则看起来X-Frame-Options Allow-From https:// ...已被折旧并被替换(并被忽略).
以下是完整的参考:https://content-security-policy.com/
| 归档时间: |
|
| 查看次数: |
639038 次 |
| 最近记录: |