IIS/Nginx 安全响应头:HSTS、CSP 与真正重要的几个
用 IIS/Nginx 加 HSTS、CSP、nosniff、frame 保护和 Referrer-Policy,测试它们,并避免复制 CSP 打挂应用。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 任务
先上很少打挂应用的:
Strict-Transport-Security: max-age=31536000; includeSubDomainsX-Content-Type-Options: nosniffReferrer-Policy: strict-origin-when-cross-originContent-Security-Policy: frame-ancestors 'self'完整 CSP 要先盘点 script/style/frame。抄来的 CSP 会打挂应用,然后被删。
web.config:
<system.webServer> <httpProtocol> <customHeaders> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains" /> <add name="X-Content-Type-Options" value="nosniff" /> <add name="Referrer-Policy" value="strict-origin-when-cross-origin" /> <add name="Content-Security-Policy" value="frame-ancestors 'self'" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol></system.webServer>IIS 可能自动加 X-Powered-By;删掉。不要给 HTTP 响应加 HSTS;浏览器忽略,但说明配置错了。
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;add_header X-Content-Type-Options "nosniff" always;add_header Referrer-Policy "strict-origin-when-cross-origin" always;add_header Content-Security-Policy "frame-ancestors 'self'" always;server_tokens off;always 让错误响应也带。
- 主机所有名字都 HTTPS 正常后再加。
includeSubDomains影响所有子域,确认。- 先用短
max-age试点;加容易,回滚慢(浏览器缓存)。 - 不懂移除流程不要加
preload。
先 report-only:
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; report-uri /csp-report再用 nonce/hash 处理内联脚本后强制。frame-ancestors 是现代替代 X-Frame-Options;旧客户端需要再留 XFO。
curl.exe -I https://lab.example/curl.exe -I https://lab.example/assets/app.jsHTML、静态资源、错误页都查。只在 200 上加头是不完整的。
E1。实验室没有应用这些头或跑 CSP 报告收集器;片段是 Server 2025 上待验证起点。