【问题标题】:`Uncaught ReferenceError: SharedArrayBuffer is not defined` since Chrome 92`Uncaught ReferenceError: SharedArrayBuffer is not defined` 自 Chrome 92
【发布时间】:2021-06-10 03:18:26
【问题描述】:

在 Chrome 92 上使用SharedArrayBuffer 会导致错误:Uncaught ReferenceError: SharedArrayBuffer is not defined。这是为什么?我该如何解决?

【问题讨论】:

    标签: security spectre sharedarraybuffer


    【解决方案1】:

    Chrome 桌面上的SharedArrayBuffer 在 Chrome 91 之前一直免费提供,但在 92 之后,它需要与 Firefox 和 Android Chrome 保持一致的称为“跨域隔离”的特殊状态。要启用状态,您必须发送两个安全标头Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin

    Spectre 的发现导致所有浏览器禁用 SharedArrayBuffer,但 Chrome 桌面可以使用专有的 Site Isolation 再次启用它。 Chrome 92 是它转向标准化方法的版本。

    如上所述,应用两个标头并启用“跨域隔离”是可行的方法,但设置它可能需要一段时间。作为一个逃生口,您可以请求 an origin trial 将您的网站列入白名单,以便至少在 Chrome 96 之前继续使用 SharedArrayBuffer 而不进行跨域隔离。

    要了解有关跨域隔离的更多信息,请阅读:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2019-01-22
      • 2019-12-31
      相关资源
      最近更新 更多