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

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


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