Google+ +1小部件如何突破其iframe?

不知何故,hover在Google+加一小工具上可以引入一个工具提示types处理,它明显大于包含它的<iframe>元素。 我已经检查了DOM来确认这一点。

iframe边界

所以:

  1. 什么? 怎么样!?

  2. 如果恶意使用,这是不是一个巨大的clickjacking机会? (想象一下,有人为这些社交小工具做了一个MITM!)

*更新:我看到的是,tooltip-y消息是在第二个dynamic创build的iframe

Google +1小部件是在构buildiframe 网站上运行的JavaScript 。 这个JavaScript小部件在您网站的上下文中运行,因此不受iframe的起源inheritance规则的限制。 因此,这个JavaScript小部件可以在父站点上设置它想要的任何DOM事件,即使它看起来只是一个简单的iframe

另一件事,为什么谷歌使用iframe ? 为什么不在网页上生成一个div ? 那么因为链接源于iframe ,所以请求中embedded了一个CSRF(跨站点请求伪造)令牌,并且父站点不能读取该令牌并伪造请求。 所以iframe是一个反CSRF措施,依靠原产地inheritance规则来保护自己免受恶意的父母。

从攻击angular度来看,这更像是XSS(跨站点脚本)而不是UI-Redress。 您可以让Google访问您的网站,如果他们愿意,他们可以劫持您的用户的Cookie或者对您的网站执行XmlHttpRequests (但是人们会起诉他们是恶意的和富有的)。

在这种情况下,您必须信任Google,但Google不相信您。

有一些方法可以减轻这些web-bugs对隐私的影响 。

Google使用iFrame来防止“泄漏的标准DIV”。 他们的closures库对话框也是一样的。 这可能只是为了让其他内容不能stream入+1button。 http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html