Google + + 1小部件是如何突破它们的 iframe 的?

不知何故,徘徊在一个 Google + +-1小部件上可以引入一个工具提示类型的协议,这个协议明显大于它所包含的 <iframe>元素。我检查了 DOM 来确认这一点。*

iframe boundaries

所以:

  1. 什么,怎么会?

  2. 如果被恶意使用,这难道不是一个巨大的点击劫持机会吗? (想象一下,有人正在为这些社交小部件做一个 MITM!)

更新: 我看到的是,工具提示 y 消息是在一个 秒,< em > 动态创建的 iframe中。

12309 次浏览

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

另外,谷歌为什么使用 iframe?为什么不在页面上生成一个 div呢?因为链接来自 iframe,所以可以在请求中嵌入一个 CSRF (跨站请求伪造)令牌,而父站点无法读取这个令牌并伪造请求。因此,iframe是一种反 CSRF 措施,它依赖于 Origin 继承规则来保护自己免受恶意父级的攻击。

从攻击的角度来看,这更像是 XSS (跨网站脚本)而不是 UI-Redress。你给谷歌访问你的网站,他们可以劫持你的用户的 cookie 或执行 XmlHttpRequests对你的网站,如果他们这样选择(但人们会起诉他们的恶意和富有)。

在这种情况下,你必须信任谷歌,但谷歌不信任你。

有很多方法可以减轻这些网络漏洞对隐私的影响。

谷歌使用 iFrames 来防止“标准 DIV 泄漏”他们的闭包库对话框做同样的事情。这可能只是为了让其他内容不能流入 + 1按钮。http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html.