【问题标题】:Open Facebook page in iframe or frame?在 iframe 或框架中打开 Facebook 页面?
【发布时间】:2019-04-13 22:39:28
【问题描述】:

我希望同时打开两个 Facebook 页面作为我的 html 页面的一部分。 因此,当您访问 mypage.html 时,将显示两个 facebook 页面。这可能吗?

我得到类似的东西:

代码如下:

<frameset cols="25%,75%">

<iframe height="*" src="http://www.facebook.com/photo.php?fbid=10150277739848763&set=pu.105012493762&type=1&theater" width="100%">
    <p>Your browser does not support iframes.</p> </iframe>

【问题讨论】:

  • 您是否真的尝试在您的页面上放置两个 iframe 并将它们链接到两个 Facebook 页面?
  • 当然,查看问题的详细信息
  • 虽然技术上可以绕过 Facebook 使用的破坏框架的代码,但这绝对不是他们想要你做的事情。

标签: html facebook iframe facebook-iframe


【解决方案1】:

我在 Facebook 的安全团队工作,实际上帮助编写了导致这种情况的代码。我们这样做 (a form of frame busting) 是为了防止 clickjacking attacks 攻击者可以将 Facebook 放入 iframe 中,将其隐藏,并诱骗用户点击 Facebook 框架并采取一些行动(例如,向他们的个人资料发布恶意链接,等)。

虽然 Jason 的回答朝着正确的方向发展,但浏览器并不会让您访问您在页面的 iframe 中插入的页面的 DOM。 Same Origin Policy 规定一个域上的 javascript 不能访问不同域上的页面上的任何内容。

【讨论】:

  • 感谢您的回答。那么在我的网站上显示我的 Facebook 页面而不离开我的网站(如果有的话)的正确方法是什么:)
【解决方案2】:

Facebook 阻止您通过 IFRAME(或任何框架)直接链接到实际网站。这是因为任何将 Facebook 放入 IFRAME(或任何框架)的网站都可以使用 Javascript 访问 Facebook 页面的元素,包括用户名和密码字段。

没有办法解决这个问题。它内置在浏览器本身中,用于在请求标头中发送一些信息,表明正在请求将其放入框架中。

Gmail 和其他几个网站也这样做。

【讨论】:

  • ——“这是因为任何将 Facebook 放入 IFRAME(或任何框架)的网站都可以使用 Javascript 访问 Facebook 页面的元素”_——不,有 SOP 可以防止这种情况发生。这实际上更多是关于网络钓鱼——如果用户过去常常在框架内看到(Facebook)登录对话框,那么我可以轻松地构建自己的版本并将其显示在框架内,并将输入的用户名/密码发送给我自己的服务器而不是 Facebook 的。为了让人们总是在地址栏中看到 facebook.com,他们决定不允许在框架内显示登录对话框和其他内容。
【解决方案3】:

在某些特定情况下,覆盖“x-frame-options”安全策略很有用,例如在数字标牌中,需要在 iframe 中与其他标牌 iframe 一起显示组织的 Facebook 页面。

不会发生点击劫持和网络钓鱼,因为该组织在其自己的浏览器驱动的显示设备上显示自己的 Facebook 页面。

如果浏览器未在其“about:flags”页面上提供内部 x-frame 覆盖,您可能需要安装浏览器扩展来覆盖标牌设备上的 x-frame-options。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2014-02-16
    相关资源
    最近更新 更多