2.2 KiB
2.2 KiB
浏览器安全响应头基线
NekoNest Cloud 在 Cloudflare Worker 的统一响应出口为页面、API 和图片响应设置浏览器安全头。它是免费公测的基础防护,不代表严格 CSP、可验证发布或 sealed 端到端实证已经完成。
当前策略
Content-Security-Policy默认只允许同源资源,禁止插件对象、被其他页面嵌入、站内 frame、跨源表单提交和媒体加载;图片只额外允许data:与blob:,Worker 只额外允许blob:。X-Frame-Options: DENY作为旧浏览器的点击劫持兜底。Referrer-Policy: no-referrer避免页面地址随跨站请求泄露。X-Content-Type-Options: nosniff禁止内容类型猜测。Permissions-Policy关闭当前产品不需要的摄像头、麦克风、定位、支付、USB 等浏览器能力。- HTTPS 响应设置一年 HSTS;HTTP 本地开发响应不会设置 HSTS。当前不使用
includeSubDomains或 preload,避免在正式域名与租户子域策略确定前扩大承诺范围。 /api、/dashboard和/admin及其子路径统一使用Cache-Control: private, no-store,即使某个业务处理器遗漏设置,也不让账户或控制面数据被浏览器或共享缓存保存;公开页面原有的缓存策略不被覆盖。
当前页面没有远程第三方脚本、样式或字体。以后增加外部来源时,必须同时修改策略、测试和本文,不能临时放宽为通配来源。
尚未完成的严格 CSP
Vinext / React 当前渲染链仍需要兼容内联脚本和样式,因此 script-src 与 style-src 暂时包含 'unsafe-inline'。策略不允许 'unsafe-eval',也不允许任意远程脚本来源,但这仍不是 nonce 或 hash 约束的严格 CSP。
扩大公测前仍需完成:
- 为框架输出接入 nonce 或 hash,并移除脚本侧
'unsafe-inline'; - 先以 report-only 方式观察真实违规,再收紧正式策略;
- 选择公开登录方案后,重测跳转、退出和账户恢复路径;
- 完成依赖锁定、构建哈希/provenance 与服务工作者回滚证据。
浏览器安全头不能解决托管方可更新 PWA 的根本信任问题,也不能替代 sealed 命令和附件的端到端测试。