背景与价值Worker执行独立上下文,需限制脚本来源与入口以防跨站执行与数据外泄。统一规范同源策略:默认仅允许同源脚本。白名单:按受控CDN与版本化路径允许特定Worker脚本。入口校验:限制创建入口与参数范围。核心实现CSP头设置与安全创建type Res = { setHeader: (k: string, v: string) => void }
function setWorkerCsp(res: Res, endpoints: string[]) { res.setHeader('Content-Security-Policy', `worker-src 'self' ${endpoints.join(' ')}`) }
function createWorker(url: string): Worker | null {
try {
const u = new URL(url, document.location.origin)
const allow = new Set([document.location.origin])
if (!allow.has(u.origin)) return null
return new Worker(u.pathname)
} catch { return null }
}
落地建议设置worker-src为同源并对外部端点白名单;安全创建Worker并校验URL来源。验证清单是否下发worker-src白名单;Worker创建URL是否同源或受控域。

发表评论 取消回复