Google +1小部件是在您的网站上运行的JavaScript代码,用于构建一个iframe
。此JavaScript小部件在您的网站上下文中运行,因此不受iframe
的源继承规则限制。因此,即使它看起来只是一个简单的iframe
,该JavaScript小部件也可以对父站点设置任何DOM事件。
那么,为什么谷歌要使用iframe
呢?为什么不在页面上生成一个div
?因为链接源自iframe
,可以在请求中嵌入CSRF(跨站请求伪造)令牌,而父站点无法读取此令牌并伪造请求。因此,iframe
是一种反CSRF措施,依赖于源继承规则来保护自己免受恶意父级的攻击。
从攻击角度来看,这更像是XSS(跨站脚本)而不是UI-Redress。您正在向谷歌授权访问您的网站,他们可以劫持您用户的cookie或对您的网站执行XmlHttpRequests
操作,但如果他们这样做,人们会起诉他们是恶意和富有的。
在这种情况下,您必须信任谷歌,但谷歌不信任您。
<iframe>
内,你建议这可能是真的(并解释了如何可能)。但是从检查DOM来看,似乎并非如此。如果没有包含在第二个iframe
中,它将会暴露我的姓名和Gmail地址给恶意的攻击者! - Alan H.