关于 security-headers-configuration
用于配置 HTTP 响应头以防范浏览器攻击的安全技能,提供 Express 和 Nginx 示例,以及检查清单和验证工具。
主要功能
- 01HSTS 配置指南
- 02内容安全策略设置
- 03防点击劫持与 MIME 嗅探
- 04Express Helmet 示例
- 05Nginx 响应头配置
- 06响应头验证检查清单
适用场景
- 01为 Express 添加浏览器安全响应头
- 02在 Nginx 配置响应头
- 03审查内容安全策略
- 04更改后检查响应头设置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ secondsky/ claude-skills --skill security-headers-configuration安装后在 Claude Code 中输入/security-headers-configuration确认已加载。
附带文件references/python-apache.md
详细介绍
安全标头配置
实施 HTTP 安全标头,防御常见的浏览器攻击。
必要标头
| 标头 | 用途 | 值 |
|---|---|---|
| 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());
// 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;
验证工具
安全标头检查清单
- 启用 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
评论
支持 Markdown