什么是 HTTP 安全头?

HTTP 安全头是 Web 服务器发送给浏览器的特殊 HTTP 响应头。它们指示浏览器如何保护用户免受跨站脚本 (XSS)、点击劫持和中间人攻击等常见 Web 攻击。

正确配置安全头是一种成本效益高的措施,可以用相对较少的工作量显著提高网站的安全性。IP 确认的安全评分功能可以让你检查所连接网站的安全头配置。

1. Content-Security-Policy (CSP)

CSP 是现代 Web 安全中最重要的头之一。它严格限制网页可以从哪些来源加载脚本、样式表和图片等资源。

CSP 防御的攻击

  • 跨站脚本 (XSS):阻止恶意脚本的执行
  • 数据注入攻击:阻止加载未授权的资源
  • 点击劫持:通过 frame 和 iframe 控制提供防御

CSP 的运用

CSP 允许你按资源类型指定允许的来源。例如,你可以只允许来自自己网站的脚本,同时允许来自自己网站和 Google Fonts 的样式表。

使用 nonce (一次性令牌) 或 hash,你还可以安全地允许内联脚本。IP 确认在每个页面上都应用了带有 nonce 属性的 CSP。

2. Strict-Transport-Security (HSTS)

HSTS 指示浏览器始终通过 HTTPS 访问网站。

HSTS 防御的攻击

  • SSL 剥离攻击:利用 HTTP 到 HTTPS 重定向的中间人攻击
  • 协议降级攻击:试图强制使用未加密的 HTTP 连接

HSTS 的工作原理

浏览器收到 HSTS 头后,会在指定的持续时间 (max-age) 内自动将对该域名的所有访问转换为 HTTPS。添加 includeSubDomains 指令可将此扩展到子域名,通过 preload 指令注册到 HSTS 预加载列表可以从首次访问就强制使用 HTTPS。如需深入了解传输层安全,Web 应用安全书籍是有价值的参考资源。

3. X-Frame-Options

此头控制网页是否可以嵌入到 <iframe><frame> 中。其主要目的是防御点击劫持,一种覆盖透明 iframe 来诱骗用户执行非预期操作的攻击。

  • DENY:禁止所有嵌入
  • SAMEORIGIN:仅允许同源嵌入

虽然 CSP 的 frame-ancestors 指令现在被推荐为更灵活的替代方案,但为了兼容旧版浏览器,建议同时设置 X-Frame-Options。如需全面了解这些头,HTTP 安全头参考书会有所帮助。

4. X-Content-Type-Options

此头阻止浏览器执行 MIME 类型嗅探,即忽略 Content-Type 头并猜测内容类型的行为。

  • MIME 类型混淆攻击:防止诱骗浏览器将文本文件作为脚本执行的攻击
  • 路过式下载:防止将恶意文件伪装成安全文件的攻击

唯一有效的值是 nosniff。这强制浏览器严格遵守 Content-Type 头中声明的 MIME 类型。

5. Referrer-Policy

此头控制页面导航时 Referer 头中包含多少信息。它防止嵌入在 URL 中的会话 ID 和搜索查询等敏感数据泄漏到外部网站。

  • no-referrer:完全不发送 Referer 头
  • strict-origin-when-cross-origin:同源请求发送完整 URL,跨域请求仅发送源 (推荐)
  • same-origin:仅对同源请求发送 Referer

如何检查安全头

  • 使用 IP 确认的安全评分一目了然地查看关键安全头的状态
  • 在浏览器开发者工具 (F12) 的 Network 标签中直接检查响应头
  • 从命令行运行 curl -I https://example.com

总结

HTTP 安全头是加强网站安全的基础而强大的措施。CSP 和 HSTS 在现代 Web 安全中尤为不可或缺。网站运营者应正确配置这些头,用户应使用 IP 确认定期检查所访问网站的安全性。如需深入了解加密连接,请参阅我们关于 HTTPS 和 TLS 的指南。要了解浏览器级别的隐私保护,请查看我们关于浏览器指纹Cookie 追踪的文章。

相关术语

TLS/SSL 加密互联网通信以确保机密性的加密协议…… HTTPS 在 HTTP 上添加 TLS 加密的协议,保护浏览器与服务器之间的通信…… 数字证书 由受信任的证书颁发机构 (CA) 签发的电子文档…… 安全头 Web 服务器发送的 HTTP 响应头,指示浏览器执行安全策略…… XSS (跨站脚本) 利用 Web 应用漏洞注入并执行恶意脚本的攻击……