javascript - 社交媒体网站阻止其他网站在 iFrame 中显示其页面

标签 javascript facebook youtube

上周在工作中我们注意到,如果您尝试在 iFrame 中显示 YouTube 页面,您会看到一个页面,指出这是不允许的。将显示一个链接,可将您直接带到该页面。我们查看了其他社交媒体网站,Facebook 和 Twitter 也这样做。

我有两个问题。一、这是如何做到的?我猜这是一张类似以下的支票:

if(window != top){
  // display 'error' page
}

另一个问题是为什么要这样做?我的第一个想法是这可能与安全有关,但我想得越多,我就越认为这是一个合法的事情或一个营销决定。

最佳答案

网站不希望其他网站窃取其内容。我记得早在九十年代就实现过类似的事情。你几乎回答了你自己的问题。然而,这也是一个安全问题。至少在 Twitter 上,曾经有一些恶意网站,它们会执行以下操作:

  1. 制作一些关于发推文或发布内容的废话网站,显示某种形式。
  2. 包含一个指向 http://twitter.com/share?text=SPAM_TEXT_HERE 的 iframe
  3. 将该 iframe 放置到 bs 网站表单按钮所在的位置。
  4. 滚动 iframe,以便 iframe 中仅显示“Tweet”按钮。

这样他们就能让人们发布垃圾推文。

关于javascript - 社交媒体网站阻止其他网站在 iFrame 中显示其页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924043/

相关文章:

javascript - 在新选项卡(而不是新窗口)中打开 URL

php - 在<embed>标记内调用PHP函数

php - Facebook FQL——非常慢

php - Ajax Post 500 服务器错误

ios - 我应该在哪个ViewController 上实现FacebookSDK 的removeObserver?

video - 如何在LaTeX Beamer中设置嵌入式YouTube视频的视频质量

jquery - 更新Youtube iframe

analytics - Javascript 中的停用词删除

javascript - EmberJS 和 Rails 4 API 的性能问题

javascript - 圆的面积