2011-08-03 141 views
0

上周在工作中我们注意到,如果您尝试在iFrame中显示YouTube网页,则会显示一个页面,指出不允许这样做。显示一个链接,您可以直接进入该页面。我们研究了其他社交媒体网站,Facebook和Twitter也都这样做。社交媒体网站阻止其他网站在iFrame中显示其网页

我有两个问题。一个是如何完成的?我的猜测是这样的检查:

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

另一个问题是为什么这样做?我首先想到的可能是安全问题,但我越想到它,就越是认为这是法律事务或营销决策。

回答

2

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

  1. 做一些关于推特或张贴东西,显示某种形式的bs网站。
  2. 包含一个指向http://twitter.com/share?text=SPAM_TEXT_HERE的iframe
  3. 将iframe放置到bs网站表单的按钮所在的位置。
  4. 滚动iframe,使iframe中只显示“Tweet”按钮。

这样他们会让人们发微博推文。

+0

我想我有一些合理的猜测,但有一些确定的理由是很好的。干杯。 –

1

问题是在YouTube的政策,我给你通过YouTube的大卫·博伊尔和官方的回答对API的页面https://developers.google.com/youtube/player_parameters?hl=it

你好的YouTube API开发者正确的嵌入选项,

这周三,1月12日,YouTube.com网络团队将执行更改以防止网站在其网页上通过(或<frame>)在其网页上包含www.youtube.com 网站。在此 更改之后,指向www.youtube.com的将停止在YouTube网站上显示 ,而是显示空白页面。

虽然这种变化没有直接关系到YouTube的API,我们做了 要宣布的关闭机会提前这种变化在任何一个YouTube API开发人员那里也包括www.youtube.com在其网站上的 页面通过框架。我们也想清楚这种变化是不是意味着 影响官方的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 

最佳 马里奥

+0

嗨马里奥。感谢您的回复,但这并不能告诉我他们为什么选择实施它,只是他们确实实施了它。 –

+0

这就是说,它确实提供了关于YouTube的额外信息和建议,所以我投票支持你。我可以看到它是如何帮助别人的。谢谢。 –