在项目根目录的_headers文件配置安全响应头:X-Frame-Options(SAMEORIGIN防点击劫持)、X-Content-Type-Options(nosniff)、Referrer-Policy、Permissions-Policy。CSP对静态站相对宽松但建议逐步收紧。HSTS在Cloudflare SSL设置里直接开启。
HTTPS 与安全响应头配置
HTTPS 证书 Cloudflare 自动配置好了。但“安全”不只是 HTTPS——正确的响应头能防御点击劫持、MIME 类型嗅探攻击,同时给 Google 的安全评估加分。
Cloudflare Pages 通过项目根目录的 _headers 文件配置响应头,无需任何服务器配置。
_headers 文件完整配置
在项目根目录(和 package.json 同级)创建 _headers 文件:
# 全站通用安全响应头
/*
# 防止页面被嵌入 iframe(防点击劫持)
X-Frame-Options: SAMEORIGIN
# 防止浏览器猜测 MIME 类型(防 MIME 嗅探攻击)
X-Content-Type-Options: nosniff
# Referrer 策略:只在同源请求发送完整 URL,跨源只发送 origin
Referrer-Policy: strict-origin-when-cross-origin
# 权限策略:禁用不需要的浏览器功能
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
# XSS 保护(旧浏览器兼容)
X-XSS-Protection: 1; mode=block
# 静态资产长期缓存
/assets/*
Cache-Control: public, max-age=31536000, immutable
# 图片缓存
/images/*
Cache-Control: public, max-age=2592000
# HTML 不缓存(确保内容更新立即生效)
/*.html
Cache-Control: public, max-age=0, must-revalidate
HSTS(HTTP 严格传输安全)
HSTS 告诉浏览器:永远用 HTTPS 访问这个域名,不要尝试 HTTP。
在 Cloudflare 控制台开启(推荐,不用 _headers):
SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS)
配置:
- Max Age:
12 months(31536000秒) - Include subdomains: 开启(如果子域名也全部 HTTPS)
- Preload: 开启(申请加入浏览器 HSTS 预加载列表,更安全)
警告:开启 HSTS Preload 后,如果未来想关闭 HTTPS,浏览器会拒绝访问你的站点长达6个月–1年。确认你永远不会关闭 HTTPS 再开启。
CSP(内容安全策略)
CSP 是最强大但也最容易配置错的响应头。错误的 CSP 会导致页面白屏(CSS/JS/图片全部被阻止加载)。
对静态展示站的建议:先用宽松配置上线,后期收紧:
# 添加到 _headers 的 /* 段
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https://formspree.io https://api.resend.com; frame-ancestors 'none';
说明:
'unsafe-inline'允许内联脚本/样式(Astro 有时需要)fonts.googleapis.com/fonts.gstatic.com:允许加载 Google Fontsformspree.io:允许表单提交到 Formspreeframe-ancestors 'none':比 X-Frame-Options 更强的防点击劫持
调试 CSP 的方法:
先在响应头里用 Content-Security-Policy-Report-Only 模式(只报告违规,不阻止),观察 Chrome Console 里的 CSP 报错,调整好之后再换成 Content-Security-Policy。
验证配置
工具:Security Headers(securityheaders.com)
输入你的域名,工具会扫描所有响应头并给出评分。目标:B 级以上(A 级需要严格的 CSP,对展示站来说不是第一优先级)。
□ _headers 文件已创建并提交到 Git
□ 重新部署后,用 securityheaders.com 验证评分 ≥ B
□ 页面功能正常(CSS/JS/图片/字体全部正常加载)
□ 询盘表单提交功能正常
□ HSTS 已在 Cloudflare 控制台开启
→ 隐私政策 + GDPR Cookie 提示部署
RELATED / 相关推荐
接着读这些
按同一分类、系列与标签为你挑选。
企业邮箱:CF Email Routing + Gmail 零成本方案
用 info@yourdomain.com 收发询盘是外贸站最基础的信任信号。这篇讲用 Cloudflare Email Routing 把域名邮件转发到 Gmail,再配置 Gmail 用域名邮箱发件——全套零成本,10 分钟完成,比买 Google Workspace 省 $72/年。
域名注册与 Cloudflare DNS 完整配置
域名是外贸站最长期的资产,选错难以更换。这篇讲外贸站域名的选择原则(TLD、品牌词、长度)、在哪里注册、如何把 DNS 迁移到 Cloudflare 并完成全套基础配置——包括 A 记录、CNAME、www 重定向、DNSSEC。
邮件安全:SPF / DKIM / DMARC 全配置(防询盘进垃圾箱)
没有 SPF/DKIM/DMARC 的外贸站,发出去的询盘回复有很高概率进买家的垃圾箱。这篇手把手配置三条记录——SPF 声明合法发件服务器,DKIM 为邮件签名防伪造,DMARC 告诉接收方如何处理验证失败的邮件。全部在 Cloudflare DNS 完成。