我是否必须切换到 https 才能在 Chrome 92 中使用“SharedArrayBuffer”?

Kor*_*los 3 javascript https http

我的网站不适用于 Chrome 92。使用 Chrome 91 一切都很好。问题是SharedArrayBuffer自 Chrome 92 以来就没有启用。当我尝试通过添加标题“Cross-Origin-Embedder-Policy:requre-corp 和 Cross-Origin-Opener-Policy:same-origin”来启用它时,我收到错误信息:

\n
\n

Cross-Origin-Opener-Policy 标头已被忽略,因为来源不可信。它是在最终响应或重定向中定义的。请使用 HTTPS 协议传递响应。您还可以使用“localhost”原点。请参阅https://www.w3.org/TR/powerful-features/#potentially-trustworthy-originhttps://html.spec.whatwg.org/#the-cross-origin-opener-policy-header

\n
\n

“请使用 HTTPS 协议传递响应”是否意味着我必须切换到 HTTPS 才能使用SharedArrayBuffer?如果是这样,原因是什么?

\n

Jer*_*man 6

是的,您需要使用 HTTPS。

某些功能(包括 SharedArrayBuffer,由于 Spectre 式攻击的暴露)是安全敏感的,需要更高程度的隔离。COOP/COEP 允许浏览器更大程度地将您的页面与其他站点隔离,这使得该功能使用起来更加安全。

包括 COOP 在内的某些功能对浏览器处理来自您来源的内容的方式有重大影响。浏览器无法确定此断​​言未被篡改,除非它是从潜在值得信赖的来源传递的(如果不是本地主机,这意味着通过 HTTPS)。

  • 解释如下:_浏览器无法确定此断​​言未被篡改..._。如果浏览器无法确定自己在谈论谁,那么它们对允许的活动就会变得越来越严格 (2认同)