Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around July 2021
时间: 2025-01-05 16:32:25 浏览: 6
### 关于 SharedArrayBuffer 的跨源隔离要求
自从 Chrome 浏览器版本 M92 开始,在 2021 年七月引入了新的安全措施,任何使用 `SharedArrayBuffer` 的网站都必须启用跨源隔离 (cross-origin isolation)[^1]。这意味着开发者需要确保其站点满足特定的安全条件才能正常使用这一功能。
为了实现跨源隔离,服务器响应需包含两项 HTTP 头部:
- **Cross-Origin-Opener-Policy**: 值应设为 `same-origin` 或更严格的选项,这可以防止其他页面通过脚本访问当前窗口对象,从而减少可能存在的攻击面。
- **Cross-Origin-Embedder-Policy**: 应被设定为 `require-corp`,该策略强制嵌入资源要么来自同一起源,要么明确声明允许跨域加载(即带有 CORS 标头),以此增强安全性并阻止某些类型的网络攻击。
当这两个头部都被正确配置之后,浏览器才会允许网页利用 `SharedArrayBuffer` 功能,这对于像 FFmpeg WebAssembly 这样的应用来说至关重要,因为它们依赖共享内存来进行高效的多媒体处理操作。
```python
# Python 示例代码展示如何设置HTTP消息头以启用跨源隔离
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
response = make_response("This site uses SharedArrayBuffer with cross-origin isolation.")
# 启用跨源隔离所需的HTTP头部
response.headers['Cross-Origin-Opener-Policy'] = 'same-origin'
response.headers['Cross-Origin-Embedder-Policy'] = 'require-corp'
return response
```
阅读全文