本站包含联盟链接 — 通过这些链接注册我们可能会获得佣金。详情

HTTP 安全标头完整指南:CSP、HSTS、X-Frame-Options 等

HTTP 安全标头完整指南:CSP、HSTS、X-Frame-Options 等

HTTP 安全标头是保护您的网站免受 XSS、CSRF 和点击劫持等攻击的强大机制。尽管它们很重要,但大多数网站都没有正确实施它们,导致用户数据容易受到攻击。本指南详细解释了每个标头、如何配置它们,以及如何验证它们在您的网站上是否正常工作。

什么是 HTTP 安全标头?为什么每个网站都需要它们

HTTP 安全标头是服务器在 HTTP 响应中发送的指令,用于告诉浏览器如何处理安全问题。它们可以防护 XSS 攻击、MIME 嗅探、点击劫持和推荐信息泄露。这些标头充当额外的安全层,即使您已经加强了代码的安全性,也能额外提升信心,确保攻击者无法轻易破坏您的用户。

Content-Security-Policy (CSP) – 细粒度内容控制

Content-Security-Policy 是防止 XSS 攻击的最强大的标头。它允许您指定哪些域可以加载脚本、样式表、图像、字体和其他资源。CSP 可以强制执行限制或在仅报告模式下运行,以警告您违反情况而不会破坏功能。在强制执行政策之前,先从仅报告模式开始测试政策。

HSTS(严格传输安全)– 始终强制执行 HTTPS

HSTS 告诉浏览器始终通过 HTTPS 连接到您的网站,即使用户键入 HTTP URL 或点击旧链接。它可以防止降级攻击和中间人拦截。该标头包括 max-age(浏览器记住此政策的时间长度)和可选的 includeSubDomains 指令,该指令将政策扩展到所有子域。

X-Content-Type-Options 和 X-Frame-Options – 防止 MIME 嗅探和点击劫持

X-Content-Type-Options: nosniff 告诉浏览器信任您发送的 Content-Type 标头,不要猜测文件类型。如果没有它,浏览器可能会将文件解释为 HTML,尽管您明确指定了内容类型。X-Frame-Options: DENY 防止您的网站被嵌入到其他网站的 iframe 中,阻止点击劫持攻击,其中隐藏的按钮欺骗用户执行无意的操作。

Referrer-Policy 和 Permissions-Policy – 控制推荐信息和浏览器功能

Referrer-Policy 控制将多少推荐信息(用户来自的 URL)发送到其他网站。例如,strict-origin-when-cross-origin 仅发送域名,不发送完整 URL 或查询参数。Permissions-Policy(以前称为 Feature-Policy)限制脚本和第三方 iframe 访问敏感的浏览器 API,如摄像头、麦克风、位置和支付请求。

推荐AsiaGB.com — 我们推荐的虚拟主机 & VPS服务。服务器位于泰国和新加坡,SSD存储,DirectAdmin控制面板,24小时泰语支持,99%在线率保证。

总部位于泰国,非常适合泰国网站和企业。

访问 AsiaGB →

如何添加安全标头 – Apache .htaccess 和 Nginx 示例

向您的网站添加标头很简单。在 Apache 上,将指令添加到根目录中的 .htaccess 文件。在 Nginx 上,编辑 nginx.conf 或虚拟服务器配置文件。如果您使用 PHP,可以使用 header() 函数添加标头,但必须在任何 HTML 输出之前执行。首先使用 X-Content-Type-Options 和 X-Frame-Options 等简单标头,然后逐步添加更复杂的 CSP。

使用在线扫描工具测试您的标头

设置标头后,进行测试以确保浏览器实际接收到它们。几个免费的在线工具可以扫描您的标头并提供安全评分。最简单的方法是打开浏览器的开发者工具 (F12),转到"网络"选项卡,并检查您的网站发送的响应标头。您也可以使用 curl 命令行工具来获取标头,而无需加载整个页面。

导致网站损坏的常见 CSP 错误

过于严格的 CSP 政策经常会破坏网站的部分内容 – 脚本无法加载、样式消失或 iframe 无法呈现。常见的错误包括忘记在 script-src 中白名单公共 CDN 域、使用降低安全性的 'unsafe-inline'、忘记允许 base64 编码图像的 data: URL,或关闭 default-src 但忘记其他指令。当出现问题时,使用仅报告模式通过控制台错误诊断问题,然后逐步放松政策。

安全标头与 SSL 证书 – 它们分别实际保护什么

SSL 证书和安全标头防护不同的威胁。SSL 加密浏览器和服务器之间的数据,防止窃听和网络级中间人攻击。安全标头在数据安全到达后通过告诉浏览器防止 XSS、CSRF、点击劫持和功能滥用来工作。您需要两者:SSL 用于加密,安全标头用于应用程序级防御。没有两者,您的网站就有漏洞。

常见问题

安全标头会影响我的 SEO 排名吗?

不会直接影响,但 HSTS 等标头可以通过减少重定向链来改进性能,这有助于 SEO。CSP 和其他标头表示网站的安全性,Google 等搜索引擎在对类似页面进行排名时可能会略微考虑这一点。主要好处是用户安全,任何 SEO 好处都是次要但受欢迎的。

添加 CSP 会破坏我的网站吗?

如果配置不正确,可能会。这就是为什么您首先要从仅报告模式开始,该模式记录违反情况而不实际阻止内容。查看控制台错误,调整您的政策,然后切换到强制执行模式。遵循这种渐进方法可以防止破坏您的网站。

HSTS 和 SSL 证书之间的区别是什么?

SSL 证书在传输层加密流量。HSTS 告诉浏览器始终通过 HTTPS 连接。它们一起工作 – 您首先需要一个有效的 SSL 证书,然后 HSTS 确保浏览器保持在 HTTPS 上。没有 SSL,HSTS 无效。

我如何测试我的网站已经有哪些安全标头?

打开浏览器的开发者工具 (F12),转到"网络"选项卡,重新加载您的页面,然后检查"响应标头"部分。您会看到 Content-Security-Policy、Strict-Transport-Security 和其他您已配置的标头。免费的在线标头扫描工具也会抓取您的网站并全面评分其安全性。

安全标头会减慢页面加载吗?

不会。标头是简单的文本指令,需要最少的服务器资源。即使是复杂的 CSP 也只影响浏览器,不影响服务器性能。安全好处远超过任何性能问题。实际上,HSTS 可以减少重定向链,实际上加快了页面加载。