HTTP 安全标头:完整参考
安全标头:通过 HTTP 响应保护您的网站
HTTP 安全标头是保护网站免受常见攻击的强有力方式。它们是服务器发送给浏览器的指令,告诉浏览器如何行为。几个精心选择的标头就可以防止整类攻击,而无需更改任何应用程序代码。
最重要的标头
Content-Security-Policy (CSP) 是最强大的安全标头。它告诉浏览器允许从哪些源加载脚本、样式、图像和其他资源。如果攻击者设法注入了指向其服务器的脚本标签,CSP 会阻止它。CSP 还可以阻止内联脚本、eval 和其他危险模式。它是防范跨站脚本攻击最有效的单一防御措施。
Strict-Transport-Security (HSTS) 告诉浏览器在连接到您的网站时始终使用 HTTPS,即使用户输入了 http:// 或点击了纯 HTTP 链接。这可以防止中间人攻击,攻击者拦截初始 HTTP 请求并将用户重定向到假网站。
X-Frame-Options 防止您的网站被嵌入到其他域的 iframe 中。这可以防止点击劫持攻击,攻击者通过将透明 iframe 覆盖在欺骗性页面上,诱骗用户点击他们本意之外的内容。
额外的保护标头
X-Content-Type-Options 防止浏览器猜测文件的 MIME 类型。如果您将文件以 text/plain 形式提供,浏览器不会尝试将其解释为 JavaScript,即使它看起来像脚本。这可以防止一种称为 MIME 嗅探的攻击。
Referrer-Policy 控制用户点击链接跳转到其他网站时发送的 referrer 信息量。像 'strict-origin-when-cross-origin' 这样的严格策略,对于同源请求发送完整 URL,但对于跨源请求仅发送源信息,从而保护用户隐私。
Permissions-Policy(原 Feature-Policy)允许您控制网站可以使用哪些浏览器功能。您可以禁用不需要的摄像头、麦克风、地理位置等功能,从而减少攻击面。
实施安全标头
您可以在 Web 服务器配置(NGINX、Apache、Caddy)、应用程序框架或通过 CDN(如 Cloudflare)中设置安全标头。有像 Mozilla Observatory 这样的工具可以扫描您的网站,并告诉您哪些标头缺失或配置错误。
从简单的标头集开始,随着您理解其影响逐步添加更多。首先实施的最重要的标头是 HSTS、CSP、X-Frame-Options 和 X-Content-Type-Options。每次更改后测试您的网站,以确保没有破坏任何内容——特别是 CSP,它可能难以正确配置。
