Answers:
Google +1小部件是JavaScript,可在构建的网站上运行iframe
。该JavaScript小部件在您网站的上下文中运行,因此不受iframe的原产继承规则的限制。因此,即使它看起来很简单,此JavaScript小部件也可以设置其在父站点上想要的任何DOM事件iframe
。
另一件事,为什么Google使用iframe
?为什么不只div
在页面上生成一个?好吧,因为链接起源于iframe
,所以CSRF(跨站点请求伪造)令牌可以嵌入到请求中,并且父站点无法读取此令牌并伪造请求。因此,这iframe
是一种反CSRF措施,它依赖于Origin Inheritance规则来保护自己免受恶意父项的侵害。
从攻击角度看,这更像XSS(跨站点脚本)而不是UI-Redress。您授予Google访问您的网站的权限,如果他们愿意,他们可以劫持用户的Cookie或XmlHttpRequests
对您的网站进行攻击(但随后人们会起诉他们恶意和富裕)。
在这种情况下,您必须信任Google,但Google不信任您。
Google使用iFrame来防止“泄漏的标准DIV”。他们的关闭库对话框执行相同的操作。可能只是因为其他内容无法渗入+1按钮。 http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html。
<iframe>
,您建议这可能是正确的(并说明如何可能)。但是从检查DOM来看似乎并非如此。它将把我的名字和Gmail地址暴露给恶意的父母(除非在一秒钟之内iframe
)!