Web 安全防护实战
OWASP Top 10 是 Web 应用安全领域最具权威性的漏洞排名。
注入攻击防护
Section titled “注入攻击防护”SQL 注入
Section titled “SQL 注入”永远不要直接拼接 SQL 语句,应使用参数化查询:
# 不安全的做法query = f"SELECT * FROM users WHERE id = {user_input}"
# 安全的做法query = "SELECT * FROM users WHERE id = ?"cursor.execute(query, (user_input,))跨站脚本攻击(XSS)
Section titled “跨站脚本攻击(XSS)”对用户输入进行输出编码:
// 使用 DOMPurify 清洗 HTMLimport DOMPurify from "dompurify";const safeHtml = DOMPurify.sanitize(userInput);跨站请求伪造(CSRF)
Section titled “跨站请求伪造(CSRF)”- 使用 CSRF Token
- 验证 Referer 头
- SameSite Cookie 属性
- 使用 bcrypt/argon2 哈希存储
- 强制使用复杂密码
- 实施多因素认证
JWT 最佳实践
Section titled “JWT 最佳实践”- 设置合理的过期时间
- 使用 HTTPS 传输
- 不要在 payload 中存放敏感信息
HTTPS 配置
Section titled “HTTPS 配置”server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3;}