安全最佳实践
安全集成 NU Signal Partners API 的指南。
保护密钥
- API 密钥值和观众 ID 盐仅显示或可知一次。请存入密钥管理器;绝不要放入源码管理、客户端包、日志或错误报告。
- 密钥泄露后应立即吊销或轮换(API 密钥)。
仅在服务器端使用密钥
- 请从后端调用 API。绝不要将
nsp_test_或nsp_live_密钥嵌入浏览器、移动应用或其他分发客户端。 - 所有由客户端发起的流程(如播放令牌请求)都应经服务器代理,以确保密钥和观众盐保持私密。
定期轮换密钥
- 请定期并在怀疑泄露时采用 overlap-and-revoke:创建、部署、验证,再吊销旧密钥。吊销密钥不会取消已签发的令牌或会话;它们按自身 TTL 过期,因此 TTL 应保持较短。
观众 ID 哈希——禁止 PII
viewer_id_hash必须是由您计算的SHA-256(stable_viewer_id + salt)。Production 仅接受恰好 64 个小写十六进制字符。绝不要发送原始邮箱、电话或设备 ID。NU 不接收也不存储原始 PII(播放 API)。- 播放
preferences同样适用此规则:仅发送非 PII 偏好信号。包含@或空格的值会以422 validation_failed拒绝。
限制来源和 IP
- 设置
allowed_origins,使播放令牌仅为您的域名签发;设置allowed_ips,将 API 请求限定到您的服务器地址(API 密钥)。
使用最小权限作用域
- 每个密钥只授予其组件所需权限;例如摄取需要
events:write,而非settlement:dispute。分离高容量和敏感工作负载(身份验证)。 api_keys:write仅应保留在保险库中的运维密钥上。不要向播放或事件运行时密钥授予密钥管理作用域。
不要暴露播放 URL
webview_url和签名 HLS/DASH 清单有效期很短(默认 1,800 秒,绝对上限 7,200;Production 默认上限 1,800),并嵌入签名令牌。应视为 Bearer 密钥:不要记录日志,不要在expires_at后缓存或分享,也不要将webview_url放入可分享链接。按需重新签发,并仅在观众 WebView 或 iframe 中打开webview_url。