本文目录导读:

配置安全的HTTP头是提升Web应用安全性的重要手段,可以有效防御XSS、点击劫持、MIME类型嗅探等常见攻击,以下是核心安全HTTP头的配置指南及示例(适用于Nginx、Apache等常见服务器)。
核心安全HTTP头清单
| HTTP头 | 作用 | 推荐值 |
|---|---|---|
Strict-Transport-Security |
强制HTTPS连接,防止SSL剥离 | max-age=31536000; includeSubDomains; preload |
X-Content-Type-Options |
防止浏览器MIME类型嗅探 | nosniff |
X-Frame-Options |
防止点击劫持(页面被嵌入iframe) | DENY 或 SAMEORIGIN |
X-XSS-Protection |
启用浏览器XSS过滤器(部分现代浏览器已废弃,但仍推荐兼容) | 1; mode=block |
Content-Security-Policy |
控制资源加载来源,防御XSS和数据注入 | 按需配置(见下文示例) |
Referrer-Policy |
控制referrer信息的发送 | strict-origin-when-cross-origin |
Permissions-Policy |
限制浏览器API权限(如摄像头、麦克风) | camera=(), microphone=(), geolocation=() |
Cache-Control |
控制缓存策略,防止敏感信息缓存 | no-store, no-cache, must-revalidate (对动态/敏感页面) |
配置示例(按服务器类型)
Nginx (在 server 或 location 块中添加)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'; base-uri 'self'" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()" always;
Apache (在 .htaccess 或 httpd.conf 中添加)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "DENY" Header always set X-XSS-Protection "1; mode=block" Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'; base-uri 'self'" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()"
IIS (通过 web.config)
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-Frame-Options" value="DENY" />
<add name="X-XSS-Protection" value="1; mode=block" />
<add name="Content-Security-Policy" value="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'; base-uri 'self'" />
<add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
<add name="Permissions-Policy" value="camera=(), microphone=(), geolocation=(), payment=()" />
</customHeaders>
</httpProtocol>
</system.webServer>
Node.js (Express)
const helmet = require('helmet');
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
imgSrc: ["'self'", "data:"],
objectSrc: ["'none'"],
frameAncestors: ["'none'"],
baseUri: ["'self'"]
}
},
referrerPolicy: { policy: 'strict-origin-when-cross-origin' },
// 其他选项默认即可
}));
// 注:helmet 默认已包含大部分安全头,以上为定制示例
Content-Security-Policy (CSP) 配置要点
CSP配置需要根据实际资源加载情况调整,避免误伤,典型配置模板:
Content-Security-Policy: default-src 'self'; # 默认只信任同源 script-src 'self' https://trusted.cdn.com; # 允许特定CDN的脚本 style-src 'self' 'unsafe-inline'; # 允许内联样式(如需) img-src 'self' data: https://images.example.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; # XMLHttpRequest、WebSocket等 frame-ancestors 'none'; # 禁止被嵌入任何iframe base-uri 'self'; # 限制<base>标签 form-action 'self'; # 限制表单提交目标 upgrade-insecure-requests; # 自动升级HTTP到HTTPS(可选)
重要:CSP配置应逐步放宽,先在report-only模式下测试(Content-Security-Policy-Report-Only),确认无违规后再启用强制策略。
检查与调试工具
- 在线检查:访问 securityheaders.com,输入你的域名获得评分和详细报告。
- 浏览器开发者工具:在“网络”标签查看响应头,确认所有头已正确返回。
- curl命令:
curl -I https://yourdomain.com
注意事项与常见误区
- 不要直接复制生产:CSP策略需根据实际的前端资源(如第三方CDN、内联脚本)定制,否则可能导致页面功能失效。
- HSTS预加载:如果申请HSTS预加载,需确保全站HTTPS且无子域名降级。
- X-XSS-PROTECTION已废弃:Chrome已移除对
X-XSS-Protection的支持,但保留以兼容旧浏览器。 - Permissions-Policy:相比
Feature-Policy(已弃用),使用新规范Permissions-Policy。 - 避免过度限制:如网站使用了iframe(如支付页面),
X-Frame-Options应设为SAMEORIGIN而非DENY。 - 缓存风险:对静态资源可设置
Cache-Control: public, max-age=31536000,但对敏感页面(如后台、个人资料)必须禁止缓存。
总结建议
- 最低安全配置:先启用
Strict-Transport-Security、X-Content-Type-Options、X-Frame-Options、Referrer-Policy,这些几乎不会影响功能。 - 逐步引入CSP:从
Content-Security-Policy-Report-Only开始,收集违规报告,再转为强制策略。 - 定期审计:使用自动化工具(如 Mozilla Observatory、Nmap NSE脚本)定期检查安全头配置。
正确配置后,可显著提升网站对XSS、点击劫持、中间人攻击等威胁的防御能力。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播