# ============================================================
# 酷冰甲 CMS / coolcoth.com — 宝塔 Nginx 安全响应头片段
# 用法：宝塔 → 网站 → 设置 → 配置文件，在 server { ... } 块内、
#        location / { ... } 之前（或之内）整段粘贴即可。
# 说明：always 必须加，否则 4xx/5xx 和静态文件不会带这些头。
# ============================================================

# 缺失项补齐（审计 P2）
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=(), interest-cohort=()" always;
add_header X-Frame-Options "SAMEORIGIN" always;

# HSTS 升级：含子域 + preload（审计当前线上仅 max-age=31536000）
# ⚠️ 若 宝塔「SSL」面板已自动下发 HSTS，请删掉那一处，避免重复下发两条。
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

# CSP（含动态 nonce）无法在 Nginx 静态下发，继续由 PHP 层 apply_security_headers() 输出，勿在此重复。

# ============================================================
# 源站隐身（curl --resolve 直连 200 的治理，需配合 CDN）
# 仅当已接入 EdgeOne / Cloudflare 后启用：仅放行 CDN 回源 IP 段。
# 例（Cloudflare，需替换为你实际接入的 CDN 回源段；EdgeOne 用其官方回源 IP 列表）：
# allow 173.245.48.0/20;
# allow 103.21.244.0/22;
# ...（完整段见 CDN 官方文档）
# deny all;
# 注：未接入 CDN 前不要写 deny all，否则正常用户也进不来。
# ============================================================
