首页 > 解决方案 > 当分析调用来自 IFRAME 时,Google Analytics 如何绕过同源策略?

问题描述

当 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=CBCAEAAB~&jid=15810307988&cid= 770600375.1539312411&tid=UA-50632293-1&_gid=1805256933.1539654946&_r=1&z=1389492630

谷歌如何绕过这个?是否可以使用 IFRAME 中的 GA 到父页面上的 GA 的 postMessage?

标签: javascriptgoogle-analyticssame-origin-policybrowser-security

解决方案


如果没有来自主页的约束(如 CSP),则(父)URL 可以在带有“document.referrer”的 iframe 内访问。


推荐阅读