1. CSP 的 nonce 与 hash 指令
请说明 CSP 的 nonce 与 hash 指令的机制与工程应用?
- script-src nonce-source
- script-src hash-source
- 适用场景
CSP 的 script-src 'nonce-xxx' 允许带指定 nonce 的内联脚本执行,'sha256-xxx' 允许哈希匹配的内联脚本。nonce:每次响应生成随机 nonce,浏览器比对脚本的 nonce 属性,用于动态内联脚本;hash:内联脚本内容的哈希,静态校验,无需服务端随机。工程应用:nonce 适合动态生成的内联脚本(需服务端每次生成),hash 适合固定的内联脚本(构建产物)。取舍:nonce 灵活但需服务端支持,hash 稳定但内容变需更新。现代配合 strict-dynamic 传递信任。工程上两者选一或结合,避免 unsafe-inline。
nonce 与 hash 是 CSP 允许内联脚本的安全方式。nonce 动态、hash 静态。它们避免 unsafe-inline,配合 strict-dynamic 是现代 CSP 最佳实践。