弹出窗口加载了“Cross-Origin-Opener-Policy:same-origin-allow-popups”(不是它的开启器)

问题描述 投票:0回答:1

如果使用

window.open
从 Javascript 打开弹出窗口/选项卡,其中

  • 弹出窗口/选项卡与打开窗口位于不同的域中
  • 弹出窗口/选项卡中的页面已设置 HTTP 标头
    Cross-Origin-Opener-Policy: same-origin-allow-popups
那么 opener 是否可以通过

window.open

 的返回值访问弹出窗口?来自
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy它说

同源允许弹出窗口

保留对新打开的窗口或选项卡的引用,这些窗口或选项卡要么不设置 COOP,要么通过将 COOP 设置为 unsafe-none 来选择退出隔离。

但这似乎描述了使用

window.open

 值调用 
Cross-Origin-Opener-Policy
 的网站的行为。我想知道如果某些(可能是对抗性的)网站使用 
window.open
 打开网站,并且该网站使用“Cross-Origin-Opener-Policy:same-origin-allow-popups”,情况会如何。

javascript google-chrome security http-headers cross-origin-opener-policy
1个回答
0
投票
https://html.spec.whatwg.org/dev/browsers.html 的规范

我认为对此更加明确

“同源允许弹出窗口”

这会强制为文档创建新的顶级浏览上下文,除非其前身指定了相同的跨源开启策略并且它们具有相同的源。

所以我怀疑任何在弹出窗口中加载该网站的敌对网站都无法访问。根据我对不同“顶级浏览上下文”的理解,这意味着不同的过程,因此分离应该很强。

© www.soinside.com 2019 - 2024. All rights reserved.