SuperAPI AI 工具集

security-headers-configuration

安全与审计

查看项目

更新于 10-15 00:32

技能介绍

用途

Security Headers Configuration 是一个用于配置 HTTP 安全响应头的技能,目标是防御常见的基于浏览器的攻击,例如 XSS、点击劫持(clickjacking)和 MIME 嗅探攻击。它适合在加固 Web 应用、准备通过安全审计等场景中使用。

主要能力

该技能围绕一组核心 HTTP 安全响应头展开,资料中列出的关键头及其用途与推荐值如下:

  • HSTS:强制使用 HTTPS,推荐值 max-age=31536000; includeSubDomains
  • CSP:限制资源加载,推荐起点 default-src 'self'
  • X-Frame-Options:防止点击劫持,推荐值 DENY
  • X-Content-Type-Options:防止 MIME 嗅探,推荐值 nosniff

此外,Nginx 配置示例中还涉及 Referrer-Policy、Permissions-Policy 和 X-XSS-Protection 等响应头。

使用方式

Express 实现

资料提供了基于 Helmet 的 Express 实现示例:

const helmet = require('helmet');

app.use(helmet());

// Custom 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;

验证工具

资料建议使用以下工具进行验证:

  • Security Headers
  • Mozilla Observatory
  • CSP Evaluator

安全检查清单

  • 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 配置
  • 响应头测试脚本

适用场景

适用于需要加固 Web 应用安全、通过安全审计、防御 XSS / 点击劫持 / MIME 嗅探等浏览器端攻击的开发与运维场景,覆盖 Express、Nginx、Python Flask、Apache 等常见技术栈。

限制与常见错误

资料列出的常见错误包括:

  • 长期将 CSP 设置为 report-only 模式
  • 使用过于宽松的策略
  • 修改后忘记测试
  • HSTS 未包含所有子域名

关于该技能的收费、价格、平台支持范围等具体信息,资料中暂未提供。