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

时间:2011-08-03 09:05:08

标签: javascript facebook youtube

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

我有两个问题。这是怎么做到的?我的猜测是这样的检查:

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

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

2 个答案:

答案 0 :(得分:2)

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

  1. 在某些网站上发布一些关于推特或发帖的内容,展示某种形式。
  2. 包含指向http://twitter.com/share?text=SPAM_TEXT_HERE
  3. 的iframe
  4. 将iframe放置在bs网站表单按钮的位置。
  5. 滚动iframe,以便只显示iframe中的“推文”按钮。
  6. 通过这种方式,他们可以让人们发推文他们的垃圾推文。

答案 1 :(得分:1)

问题出在youtube政策中,我给你youtube的David Boyle的官方回答以及api网页https://developers.google.com/youtube/player_parameters?hl=it上正确的嵌入选项

Hello YouTube API开发人员,

1月12日星期三,YouTube.com网络团队将会是 实施更改以防止网站包含www.youtube.com 通过<iframe>(或<frame>)在其网页上显示网站。按照此 更改,指向www.youtube.com的<iframe>将停止显示 YouTube网站,而是显示空白页。

虽然此更改与YouTube API没有直接关系,但我们做到了 想要提前通知任何YouTube的机会 API开发人员确实在他们的网站上包含了www.youtube.com 页面通过帧。我们还想明确表示这种改变不是 意在影响官方<iframe> YouTube视频嵌入API

(described at http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html),

应保持完全正常运作。它只是为了影响 非嵌入式API使用。

如果您因为您在网页上加入www.youtube.com 此YouTube帮助文章不确定如何嵌入视频 详细介绍了嵌入的官方方法:

http://www.google.com/support/youtube/bin/answer.py?hl=en&answer=171780 
最佳

马里奥