← 返回撞库攻击

🛡️ 实验二:撞库防护

防护策略

通过多层防护机制,大幅增加撞库攻击的成本

🔐 防护方案一:登录限流

限制同一 IP 的登录尝试次数,超过阈值后临时封禁

连续失败 5 次后将被临时封禁 60 秒

// 限流实现
const ipAttempts = {}

app.post('/login', (req, res) => {
  const ip = req.ip
  if (ipAttempts[ip] > 5) {
    return res.status(429).json({ error: '请求过于频繁' })
  }
  ipAttempts[ip]++
  // ... 验证逻辑
})

🤖 防护方案二:验证码

要求用户完成验证码,阻止自动化攻击

📱 防护方案三:多因素认证 (MFA)

即使密码被撞库成功,没有第二因素也无法登录

  • 短信验证码
  • TOTP 动态令牌 (Google Authenticator)
  • 硬件密钥 (YubiKey)
  • 生物识别

🔍 防护方案四:异常检测

检测项异常特征响应
登录频率短时间大量尝试限流/封禁
地理位置异地登录二次验证
设备指纹新设备邮件确认
行为分析机器人特征验证码

👤 用户侧防护

  • ✅ 使用密码管理器,每个网站不同密码
  • ✅ 启用双因素认证
  • ✅ 定期检查 haveibeenpwned.com
  • ✅ 收到异常登录提醒立即修改密码

📋 防护检查清单

措施效果实现难度
登录限流⭐⭐⭐简单
验证码⭐⭐⭐⭐简单
MFA⭐⭐⭐⭐⭐中等
异常检测⭐⭐⭐⭐复杂
密码泄露检测⭐⭐⭐中等