安全响应头是服务器返回给浏览器的一组 HTTP Header,能在不改代码的情况下限制页面加载、防点击劫持和 MIME 嗅探。本文逐个讲清 HSTS、CSP 等六个常用响应头的作用和推荐配置,再给出在 Cloudflare 开启托管安全头、添加自定义规则的完整步骤,最后用 SecurityHeaders.com 验证效果。

网站安全优化里,HTTPS、WAF、防火墙、漏洞扫描这些措施大家都会关注,但有一层经常被忽略:HTTP Security Headers,也就是安全响应头。
安全响应头是服务器返回给浏览器的一组 HTTP Header,用来告诉浏览器网站内容应该怎么加载、哪些行为要被限制、哪些浏览器功能不应该开启,从而避免一些常见的 Web 攻击。它不需要修改网站代码,也不会改变页面内容,通常只在服务器或者 CDN 层配置一次就全站生效。
对于 WordPress、WooCommerce、企业官网这类网站,通过 Cloudflare 配置安全响应头是一种简单、安全且全站生效的方式。这篇文章先讲清楚安全响应头是什么、每个常用头的作用,再给出在 Cloudflare 里配置的完整步骤。
安全响应头是什么
用户访问网站时,浏览器和服务器之间会做 HTTP 通信。比如访问 example.com,服务器会返回这样一段响应:
HTTP/2 200 OK
Content-Type: text/html
Content-Security-Policy: ...
X-Frame-Options: ...
响应里这些额外的信息就是 HTTP Headers。安全响应头是其中专门用来提升浏览器安全策略的一类 Header。它们的作用不是阻止所有攻击,而是让浏览器在加载网站时遵守更严格的安全规则。
六个常用的安全响应头
下面逐个介绍最常用的六个安全响应头,每个都给出推荐配置。配置值是直接可复制的,在 Cloudflare 的规则里按原样粘贴即可。
Strict-Transport-Security(HSTS)
强制浏览器始终用 HTTPS 访问网站。用户输入 http://example.com 时,浏览器会自动换成 https://example.com,避免 HTTP 降级攻击(SSL Stripping)。
Strict-Transport-Security: max-age=31536000; includeSubDomains
max-age=31536000 表示一年内有效,includeSubDomains 表示同时作用于所有子域名。
X-Frame-Options
防止网站被嵌入恶意 iframe。攻击者可以伪造一个 fake-login.com 的假页面,在页面上隐藏加载你的网站,诱导用户点击,这就是 Clickjacking(点击劫持)。
X-Frame-Options: SAMEORIGIN
SAMEORIGIN 表示只有同源网站可以 iframe 加载该页面。
X-Content-Type-Options
防止浏览器猜测 MIME 类型。攻击者可能上传一个伪装成图片的恶意文件,如果浏览器自作主张判断文件类型,就可能触发安全风险。
X-Content-Type-Options: nosniff
nosniff 告诉浏览器严格按照服务器声明的 Content-Type 处理文件。
Referrer-Policy
控制用户跳转到其他网站时,浏览器发送多少来源信息。比如用户从 example.com/products/product-a 点击外部链接,旧规则可能把完整 URL 发出去,strict-origin-when-cross-origin 可以限制跨域访问时只发送网站来源,不暴露完整路径。
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy(CSP)
Content-Security-Policy 是安全响应头里最重要、也是最复杂的一项。它控制哪些脚本可以执行、哪些图片可以加载、哪些第三方资源可以访问。比如 default-src ‘self’ 表示默认只允许加载自己网站的资源。
但对 WordPress 网站来说,尤其是用了 Elementor、WooCommerce、Google Tag Manager、Google Analytics、WPML、reCAPTCHA 这些插件的网站,严格 CSP 必须经过测试,否则页面资源可能加载不出来。所以很多企业站会先保持 upgrade-insecure-requests,只做把 HTTP 资源自动升级到 HTTPS 这一件事。
Content-Security-Policy: upgrade-insecure-requests
Permissions-Policy
控制浏览器功能权限,比如摄像头、麦克风、地理位置。普通企业网站一般用不到这些功能,直接禁掉。
Permissions-Policy: camera=(), microphone=(), geolocation=()
为什么推荐在 Cloudflare 配置
如果网站的结构是用户、Cloudflare CDN、服务器、WordPress 这样的链路,Cloudflare 正好挡在用户和服务器之间。在中间层加响应头,请求到达浏览器之前就会自动补上,源站什么都不用动。
在 Cloudflare 配置安全响应头有几个实际好处:
- 不用修改 WordPress 文件,也不用改 Nginx 或 Apache 配置。
- 全站统一生效,不用每个子域名单独处理。
- 后续迁移服务器,配置跟着域名走,不会丢。
不管你的网站是跑在 Hostinger 共享主机还是 VPS 上,安全响应头都可以在 Cloudflare 这一层统一配好,这是对企业站最省事的做法。
第一步:开启 Cloudflare 托管安全头
进入 Cloudflare Dashboard,选择目标域名(比如 example.com),然后进入 Rules 下的 Settings,找到 HTTP Response Headers 区域。
先开启 Remove X-Powered-By Headers 选项。它会把服务器暴露的信息删掉,比如 X-Powered-By: PHP/8.1,避免网站的技术环境被直接看穿。
再开启 Add Security Headers。Cloudflare 会自动添加常用安全响应头,包括 Content-Security-Policy、X-Frame-Options、X-Content-Type-Options、Referrer-Policy,开启后保存。
配置的前提是域名已经托管在 Cloudflare,DNS 托管到 Cloudflare 的好处之前专门写过一篇,为什么资深开发者更倾向于把域名 DNS 托管到 Cloudflare。
第二步:添加自定义响应头规则
回到 Rules 下的 Overview,点击右上方的 Create rule,在下拉菜单中找到 Modify Cloudflare Configurations and Behaviors-Response Header Transform Rule,新建响应头变换规则。
这一步最容易踩坑:不要选成 Request Header Transform Rules,两者方向完全不同。
| 维度 | Request Header Transform Rules | Response Header Transform Rules |
|---|---|---|
| 作用方向 | 用户 → Cloudflare → 源站 | 源站 → Cloudflare → 用户浏览器 |
| 修改对象 | 发给服务器的请求 | 返回给浏览器的响应 |
| 典型用途 | 自定义请求头、修改 Host | 添加安全响应头 |
| HSTS、CSP 放这里? | 错误 | 正确 |
安全响应头必须放在 Response 方向。给规则起一个名字,比如 Security Headers,方便以后辨认;匹配条件选 All incoming requests,表示全站生效,然后选择 Set Static,添加两个自定义头:
Header name: Strict-Transport-Security
Value: max-age=31536000; includeSubDomains
以及:
Header name: Permissions-Policy
Value: camera=(), microphone=(), geolocation=()
HSTS 和 Permissions-Policy 不在 Cloudflare 托管安全头的自动列表里,所以用自定义规则补上,保存规则即可。
第三步:用 SecurityHeaders.com 检查
配置完成后,打开 securityheaders.com,输入网站地址进行检测。
检查以下项目是否全部显示绿色:
- Permissions-Policy
- Content-Security-Policy
- Strict-Transport-Security
- Referrer-Policy
- X-Content-Type-Options
- X-Frame-Options
这六项全部通过,说明网站的基础安全响应头配置已经完成。
注意事项
不要把安全响应头加到 Request Header 里。这是 Cloudflare 配置里最容易犯的错误。HSTS、CSP、Permissions-Policy 都是给浏览器看的,不是给服务器看的,放错方向等于没配。
CSP 不建议直接上严格规则。WordPress 网站依赖大量第三方资源,直接 default-src ‘self’ 可能导致页面样式异常、Elementor 编辑器不可用、Google Analytics 停止工作。建议先用 upgrade-insecure-requests,再逐步收紧并测试。
总结
安全响应头是网站安全体系里成本最低、收益较高的一项优化。完整流程可以概括成三步:
配置安全响应头的完整流程
开启托管安全头
删除 X-Powered-By,自动加常用头。
自定义响应头规则
在 Response 方向补 HSTS 等。
检查验证
SecurityHeaders.com 六项全绿。
先进入 Cloudflare Dashboard 的 Rules 下 Settings,开启 Remove X-Powered-By 和 Add Security Headers;再到 Rules 下 Overview 的 Response Header Transform Rules 里补充 HSTS 和 Permissions-Policy;最后用 SecurityHeaders.com 检查六项是否全绿。整个过程不用修改 WordPress 代码,不影响 SEO、Schema、缓存和网站功能,是企业站上线后值得做的第一项基础安全加固。
安全加固做完之后,网站速度优化也值得一起做,可以参考提升 WordPress 网站速度的 15 个技巧。
每周四送达。
主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。
