(对于一些人来说,这个问题可能等于“如果我不能在我的主站点中使用sharedArrayBuffer,我可以打开一个iframe并在iframe内使用sharedArrayBuffer吗?)
所以我想在我的站点中使用一些带有sharedArrayBuffer的wasm,但是使站点跨源隔离是不切实际的,所以我做了另一个站点https://my-wasm-function.app,它是跨源的-隔离的。我希望使用它作为一个iframe,并与我的主要网站通过postMessage。
但是,我发现一旦它作为一个iframe嵌入,它就失去了隔离状态。
类似的问题是在2021年3月被问到的,当时公认的答案是“不”。然而,最近的一个谷歌博客似乎意味着不一样,所以我想再问一次。
博客中有一些关于如何隔离iframe的模糊说明,其中之一是添加标题Cross-Origin-Resource-Policy: cross-origin (我认为是在COOP和COEP之上),我尝试过,但没有成功。另一个是像这样打开iframe:<iframe allow="cross-origin-isolated">,我也试过了,也没有工作。
发布于 2021-09-28 14:17:19
答案是否定的。从那篇博客的作者那里得到确认。
还不太清楚<iframe allow="cross-origin-isolated">实现了什么,如果父服务器被隔离,而iframe的头不在您的控制范围内,它也许可以在不设置头的情况下隔离一个iframe,但是如果父服务器不是,它肯定不会保持iframe的隔离。博客作者说他会添加一些澄清。
发布于 2022-03-14 10:32:57
换句话说,如果我不能在我的主站点中使用sharedArrayBuffer,我可以打开一个iframe并在iframe中使用sharedArrayBuffer吗?
不是的。父母不能向iframe传达一个能力是不具备的。
cross-origin-isolated是一种功能。它支持几个特性,如:
从2022年3月开始:当顶级文档使用COOP:same-origin和COEP:require-corp或COOP:credentialless时,您就可以获得该功能。对于iframe,家长还必须使用“允许=‘跨源隔离’”向下传递能力。
https://stackoverflow.com/questions/69322834
复制相似问题