有没有办法在Chrome下的iframed网站中更改或阻止使用window.location.ancestorOrigins
?
出于安全原因,我不希望iframed页面能够检测到最顶层的URL。
在Firefox下,如果<iframe>
指向另一个<iframe>
,它就解决了这个问题。但在Chrome下,它仍在检测主网站。
不,而且自2016年以来一直在进行讨论! https://github.com/whatwg/html/issues/1918
这是谷歌广告资金Chrome开发时的结果。
另请注意,在chrome上,您可以通过defineProperty()覆盖document.referrer,但不能覆盖window.location.ancestorOrigins。他们真的关心那个属性,只是不足以尊重它的内容安全政策¯\ _(ツ)_ /¯
@seanonymous(新帐户,此处无法回复评论)用例是某些网站在URL中公开了他们不希望合作伙伴看到的信息。例如,CNN可能会利用Google或Facebook获取登录信息。他们很好地与用户正在阅读cnn.com的公司分享,以换取他们评论部分的授权流程。但他们可能无法分享用户希望对这些公司发表评论的文章。十年前,W3c通过CSP和referrer控制头解决了这个问题。但谷歌在没有任何评论的情况下实施了这一点,就像微软在IE4~6市场占据主导地位时所做的那样。
答案很简单:你无法改变它。