IFRAME中的X-Frame ORIGINS

时间:2016-08-21 11:13:52

标签: javascript google-chrome webrtc

不久前,我创建了一个应用程序,客户端使用WebRTC协议连接到服务器。

客户端屏幕由两部分组成。一半与服务器链接并接收消息等内容,并且其中包含WebRTC javascript的网页。另一个是IFRAME。当客户端连接到服务器时,服务器会向客户端发送一个加载到IFRAME中的Web地址。

我知道有些网页无法加载到iframe中,例如通常有密码屏幕。 Google表单似乎没有此限制,这很棒。

所以现在想象一下我启动服务器并要求20个人连接它。所有20名学生都正确连接到服务器,我知道因为它在我的计算机上提供了所有细节。通常情况下,根据我的测试,15/20将没问题。其他5个将获得白色屏幕。当我在控制台中调查时,它是一个XFRAMES ORIGIN问题,它说加载的网页不允许自己加载到iframe中。但是其他人(使用相同的浏览器[chrome]和一些相同的浏览器版本)都没问题。

现在我有一个适用于某些学生的解决方案,有一个名为chrome的设置:

block third party cookies and site data

如果启用此功能,则无法正常工作,如果未启用,则无效。

现在我还有4名学生,他们仍然只看到一个我无法解决的白色屏幕。 Chrome和Firefox都支持该软件,但两者都产生同样的问题。

建筑设置是学生通过服务器连接到互联网。他们必须通过这个服务器连接,因为我的名字服务器不是本地的,我的网站也不是本地的。

我不认为这是一个编码问题,因为它只发生在一些选择的计算机上,而其他一切只能在hunky dory上运行。因此,我认为这可能与其他问题有关:防火墙,安全设置,配置按钮等。如果有人对我可以采取的措施有任何建议,那么我将非常感谢你的帮助。

我试图提供我认为相关的所有信息(hense的长度)但是我错过的任何信息请询问。

谢谢。 亚历

2 个答案:

答案 0 :(得分:0)

如果主网站的网址与iframe的网址不同,您将收到xframes来源问题。这包括协议(http vs. https)和完整域(example.com vs www.example.com)。换句话说,如果用户访问example.com并且iframe使用www.example.com,则可能会导致xframes原始错误。或者,如果他们转到http://www.example.com并且iframe使用https://www.example.com,您可能会收到此错误。

答案 1 :(得分:0)

好的,对于将来遇到此问题的人,我将在此处创建此帖子的更新。基本上,对于那些想要解决iframe问题的人来说,只是显示一个白页。

通过这三种解决方案,我已经消除了所有问题,但是当我想出新的问题时,我会将它们发布在这里。希望它对某人有用:)

解决方案1 ​​

如果您的iframe瞄准需要用户登录的某个地方,则不太可能。由于明显和充分的理由,密码页很少跨越原点。解决方案是确保在使用您的iframe页面之前,他们完全登录到他们正在做的事情,或者提供一条错误消息,如果它发生的话,会给他们提供这些信息。有关详细信息,请参阅此帖子:Catch error if iframe src fails to load . Error :-"Refused to display 'http://www.google.co.in/' in a frame.."

我在哪里,我们有双重登录,所以他们签署谷歌和然后进入组织。这两个登录区域都会导致页面加载失败。

解决方案2(仅限Chrome)

有些服务对QUIC模式反应很差,而且我的一些用户因此而遇到了问题。

修复:

  1. chrome://flags
  2. change QUIC mode to 'Disabled'

解决方案3

如果您通过需要Cookie的代理服务器工作,用户可能会遇到问题,如果他们启用了“阻止第三方Cookie和网站数据”按钮。禁用此功能会对iframe的工作效果产生积极影响。

在chrome:

Settings
Search for cookies
Click 'content settings'