Skip to content
PПромтбук
RUEN
01Безопасность

Аутентификация и rate limiting

Защита логина, реги, восстановления пароля от brute force.

Защити auth-флоу.

Атаки которые предотвращаешь

  • Credential stuffing
  • Brute force
  • Account enumeration
  • Phishing redirect
  • Password reset abuse

1. Rate limiting

EndpointLimitWindow
POST /login5 attemptsper IP per 15min
POST /signup3per IP per hour
POST /password-reset3per email per hour

При превышении — 429 + Retry-After.

2. Account lockout

  • 5 failed → 15 мин блок
  • 10 → 1 час
  • 20 → требуется email верификация
  • НЕ "блокировать навсегда" — DoS

3. CAPTCHA

  • НЕ на каждом логине (UX)
  • После 2-3 failed — да
  • На signup — да (cloudflare turnstile / hCaptcha)

4. Password requirements

  • Минимум 8 символов
  • Не блокируй спецсимволы
  • Не требуй частую смену
  • Проверяй против haveibeenpwned

5. 2FA

  • TOTP минимум
  • WebAuthn / passkeys — лучше
  • SMS — последний выбор

6. Session management

  • HttpOnly + Secure + SameSite=Strict
  • Короткие access tokens (1h)
  • Refresh с rotation
  • Logout = invalidate server-side

7. Защита от enumeration

Плохо: "Email not found" vs "Wrong password" → enumeration Хорошо: "If account exists, email sent"

8. Monitoring

  • Лог всех попыток
  • Алёрт на > 100 failures за 5 мин с одного IP
  • Notification юзеру при логине с нового устройства

Анти-паттерны

  • ❌ Globalный rate-limit (один атакующий блокирует всех)
  • ❌ Возвращать "user not found" в login
  • ❌ Пароли в логах
К подразделу «Безопасность»
Похожие промты