安全头配置 security-headers-configuration

这个技能专注于配置HTTP安全头来增强Web应用程序安全性,防止XSS攻击、点击劫持和MIME嗅探,适用于安全加固、审计和内容安全策略实施,关键词包括HTTP安全头、XSS防护、点击劫持防御、CSP配置、Web安全。

安全运维 0 次安装 0 次浏览 更新于 3/7/2026

name: 安全头配置 description: 配置HTTP安全头以保护免受XSS、点击劫持和MIME嗅探攻击。适用于加固Web应用程序、通过安全审计或实施内容安全策略时使用。

安全头配置

实施HTTP安全头以防御常见的基于浏览器的攻击。

基本头

Header 目的
HSTS 强制HTTPS max-age=31536000; includeSubDomains
CSP 限制资源 default-src 'self'
X-Frame-Options 防止点击劫持 DENY
X-Content-Type-Options 防止MIME嗅探 nosniff

Express实现

const helmet = require('helmet');

app.use(helmet());

// 自定义CSP
app.use(helmet.contentSecurityPolicy({
  directives: {
    defaultSrc: ["'self'"],
    scriptSrc: ["'self'", "'unsafe-inline'"],
    styleSrc: ["'self'", "'unsafe-inline'"],
    imgSrc: ["'self'", "data:", "https:"],
    connectSrc: ["'self'", "https://api.example.com"],
    fontSrc: ["'self'", "https://fonts.gstatic.com"],
    frameAncestors: ["'none'"]
  }
}));

Nginx配置

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'" always;

验证工具

安全头检查清单

  • [ ] HSTS启用并设置长max-age
  • [ ] CSP配置并测试
  • [ ] X-Frame-Options设置为DENY
  • [ ] X-Content-Type-Options设置为nosniff
  • [ ] Referrer-Policy已配置
  • [ ] Permissions-Policy禁用未使用功能

其他实现

参见references/python-apache.md获取:

  • Python Flask安全头中间件
  • Flask-Talisman库配置
  • Apache .htaccess配置
  • 头测试脚本

常见错误

  • 永久设置CSP为仅报告模式
  • 使用过于宽松的策略
  • 更改后忘记测试
  • 在HSTS中未包括所有子域名