跳到主要内容
IM智引科技

研究 / 外贸与 B2B 增长

HTTPS 与安全响应头配置

HTTPS 只是安全的起点。这篇讲通过 Cloudflare Pages 的 _headers 文件配置安全响应头——CSP、HSTS、X-Frame-Options、X-Content-Type-Options——让浏览器和 Google 都认为你的站点是安全可信的,同时避免常见配置错误导致页面白屏。

BLKTECH 编辑部2026年8月4日8 分钟难度 进阶免费Cloudflare Pages

在项目根目录的_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 Fonts
  • formspree.io:允许表单提交到 Formspree
  • frame-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 提示部署

NEXT ACTION / 下一步

继续系列:AI 外贸站建设全系列

把读到的方法变成一个小行动,完成后再回来迭代。

继续

RELATED / 相关推荐

接着读这些

按同一分类、系列与标签为你挑选。