高安全架构 学习笔记(第 15 部分)
7.2 安全响应头设置
javascript
// 设置安全响应头
const securityHeaders = (req, res, next) => {
// 防止点击劫持
res.setHeader('X-Frame-Options', 'DENY')
// XSS 保护
res.setHeader('X-XSS-Protection', '1; mode=block')
// 防止 MIME 类型嗅探
res.setHeader('X-Content-Type-Options', 'nosniff')
// HTTPS 强制
res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains')
// CSP
res.setHeader('Content-Security-Policy', [
"default-src 'self'",
"script-src 'self'",
"style-src 'self' 'unsafe-inline'"
].join('; '))
// Referrer 策略
res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin')
// 权限策略
res.setHeader('Permissions-Policy', [
'geolocation=()',
'microphone=()',
'camera=()'
].join(', '))
next()
}
// 应用安全头
app.use(securityHeaders)八、常见安全问题与解决方案
| 安全问题 | 风险等级 | 解决方案 |
|---|---|---|
| 弱密码 | 高 | 密码强度验证、bcrypt 加密 |
| SQL 注入 | 严重 | 参数化查询、输入验证 |
| XSS 攻击 | 高 | 输出编码、CSP 策略 |
| CSRF 攻击 | 高 | CSRF Token、SameSite Cookie |
| 会话劫持 | 高 | HTTPS、Secure Cookie、Session 轮换 |
| 敏感信息泄露 | 高 | 数据脱敏、访问控制 |
| DDoS 攻击 | 高 | 流量清洗、限流、CDN |
| 未授权访问 | 高 | 身份认证、权限控制 |
九、学习要点总结
核心要点
-
五大安全策略:
- 物理安全:机房、设备、门禁、权限
- 数据安全:访问控制、加密、保护
- 通信安全:DDoS、DNS劫持、重放攻击防护
- 身份安全:认证、授权、审计
- 软件安全:OS、数据库、Web应用
-
数据安全三要素:
- 访问权限控制(最小权限原则)
- 数据加密(对称、非对称、哈希)
- 数据保护(备份、恢复、脱敏)
-
身份安全三要素:
- 认证(JWT、OAuth 2.0)
- 授权(RBAC、ABAC)
- 审计(日志记录、异常检测)
-
常见攻击防护:
- SQL 注入 → 参数化查询
- XSS → 输出编码、CSP
- CSRF → Token 验证
- DDoS → 限流、流量清洗
-
安全最佳实践:
- 输入验证
- 输出编码
- 最小权限
- 安全响应头
- 定期安全审计
十、延伸学习资源
推荐书籍
- 《Web 应用安全权威指南》 - OWASP
- 《白帽子讲Web安全》 - 吴翰清
- 《黑客攻防技术宝典》 - Dafydd Stuttard
- 《应用密码学》 - Bruce Schneier
在线资源
- OWASP Top 10:https://owasp.org/Top10/
- CWE/SANS Top 25:https://cwe.mitre.org/top25/
- Mozilla 安全指南:https://wiki.mozilla.org/Security/Guidelines
- 安全响应头检查:https://securityheaders.com/
安全工具
- SQLMap:SQL 注入检测
- OWASP ZAP:Web 应用安全扫描
- Burp Suite:渗透测试工具
- Nmap:网络扫描工具
笔记整理完成!
这份笔记详细讲解了高安全架构的五大策略(物理安全、数据安全、通信安全、身份安全、软件安全),并结合大量代码示例和最佳实践,帮助理解安全架构设计的核心思想。建议结合实际项目进行安全加固和渗透测试。