A04:2025 - 加密失效
💡 学习提示: 本文档介绍 OWASP Top 10 A04 - 加密失效,涉及敏感数据保护的核心安全问题。
📋 风险概述
加密失效 (Cryptographic Failures) 是指由于未加密、弱加密或加密实现不当,导致敏感数据泄露的风险。这类风险 formerly 称为"敏感数据泄露"(Sensitive Data Exposure)。
🟠 危害等级:高危
| 项目 |
说明 |
| 发生率 |
2.56% |
| 平均影响 |
7.42/10 |
🎯 常见场景
1. 明文传输
# ❌ 使用 HTTP 而非 HTTPS
http://example.com/login
# 密码以明文传输
2. 弱密码哈希
# ❌ 使用 MD5/SHA1
hash = md5(password)
hash = sha1(password)
# ✅ 使用 bcrypt/argon2
import bcrypt
hash = bcrypt.hashpw(password, bcrypt.gensalt())
3. 弱加密算法
# ❌ 使用 DES、RC4、MD5
# ✅ 使用 AES-256、RSA-2048+
4. 硬编码密钥
# ❌ 密钥硬编码在代码中
SECRET_KEY = "mysecretkey123"
ENCRYPTION_KEY = "0123456789abcdef"
🛡️ 防御方法
✅ 1. 强制 HTTPS
# 配置强制 HTTPS
server {
listen 80;
return 301 https://$server_name$request_uri;
}
✅ 2. 安全密码存储
# ✅ 使用 bcrypt
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(12))
✅ 3. 安全密钥管理
# ✅ 使用环境变量或密钥管理服务
import os
SECRET_KEY = os.environ.get('SECRET_KEY')
🔗 参考资料
最后更新:2026-03-10