Google 当分析调用来自 IFRAME 时,分析如何绕过同源策略?

How Google Analytics bypass Same Origin policy when the analytics call is from an IFRAME?

当 GA 调用来自 IFRAME 时,它如何获取父 URL?

通常当 javascript 尝试访问其框架浏览器之外的任何内容时会抛出 SAME ORIGIN POLICY 错误。特别是 parent.document、parent.location 等。但是,当您检查发送回服务器的分析数据时,很明显该调用携带 window.top 的 URL。要做到这一点几乎是不可能的,我相信他们要么在进行巧妙的黑客攻击,要么正在获得优惠待遇。

示例: 页数:http://delhincr.kidzania.com/en-in/pages/virtual-tour IFRAME SRC : http://walkinto.in/tour/W1vLiH5CbG-yePUsrc0WM (显然不是同源)

来自 IFRAME 的 GA 调用:

https://www.google-analytics.com/r/collect?v=1&_v=j71&a=944377214&t=pageview&_s=1&dl=http%3A%2F%2Fwalkinto.in%2Ftour%2FW1vLiH5CbG-yePUsrc0WM&dr=http%3A%2F% 2Fdelhincr.kidzania.com%2Fen-in%2Fpages%2Fvirtual-tour&ul=en-us&de=UTF-8&dt=KidZania%20Delhi%20NCR&sd=24-bit&sr=1366x768&vp=1140x641&je=0&_u=CBCAAEAB~&jid= 1584760177&gjid=1030794988&cid=770600375.1539312411&tid=UA-50632293-1&_gid=1805256933.1539654946&_r=1&z=1389492630

Google 如何绕过这个?它可以使用从 IFRAME 中的 GA 到父页面上的 GA 的 postMessage 吗?

如果没有来自主页(如 CSP)的限制,(父级)URL 可以在带有 "document.referrer" 的 iframe 中访问。