指南
如何修复缺失的HTTP安全响应头 (CSP, HSTS)
缺失关键安全响应头会使Web应用面临跨站脚本攻击 (XSS)、点击劫持、协议降级以及会话凭据泄漏等严重风险。彻底修复需要在服务器底层配置完备的防御指令。
部署有效期至少为一年并开启preload的Strict-Transport-Security,配置限制严格的Content-Security-Policy,启用X-Content-Type-Options: nosniff并设置frame-ancestors 'none'。
排查与诊断缺失的HTTP响应头
在调整服务器配置之前,建议使用 curl -IL 命令行工具或自动化响应头检测器评估当前站点的基线响应。明确由源站服务器(如Nginx、Apache)、反向代理还是CDN边缘节点负责TLS握手和响应头写入。同时确认上游代理网络层未剥离安全头,后端中间件也未覆盖相关指令。
安全实施Strict-Transport-Security (HSTS)
HSTS强制客户端浏览器始终通过安全的HTTPS通道发起连接,有效杜绝中间人劫持与SSL剥离攻击。初期可在测试环境中设置 max-age=86400(一天)。确认所有子域名、静态资源和API均完全支持HTTPS后,再提升至生产级别:max-age=31536000; includeSubDomains; preload。切勿在生产环境中使用 max-age=0,这会导致安全策略即刻失效。
构建严格的内容安全策略 (CSP)
CSP用于明确限定浏览器在执行脚本和加载外部资源时的合法来源。建议首先部署 Content-Security-Policy-Report-Only 响应头配合 report-to 端点,在不中断业务的前提下全面监控潜在违规。将默认源限制为 default-src 'self',使用一次性随机数 (nonce) 或 SHA-256 哈希替代 'unsafe-inline',彻底禁用 object-src 'none' 并锁定 frame-ancestors 'none'。
防御点击劫持、MIME嗅探及引用来源泄漏
通过在CSP中声明 frame-ancestors 'none',同时配置备用头 X-Frame-Options: DENY,防止恶意第三方将您的站点嵌入不可见的隐藏iframe中实施界面劫持。配置 X-Content-Type-Options: nosniff 禁止浏览器自行探测可执行MIME类型。借助 Referrer-Policy: strict-origin-when-cross-origin 避免在外部跳转时泄漏敏感URL参数。
Web服务器配置部署与线上校验
在Nginx服务器中,应在HTTPS的server配置块中使用带 always 参数的 add_header 指令(例如:add_header X-Content-Type-Options "nosniff" always;),确保在4xx和5xx异常响应状态下依然下发安全头。在Apache中利用 mod_headers 模块的 Header always set 指令。通过 nginx -t 校验配置语法并重载服务,最后进行完整扫描验证。
安全响应头: HTTPS、CSP、防点击劫持、MIME嗅探、Referrer与浏览器隔离控制。
开始免费审计 →