1.5 KiB
1.5 KiB
Task 12: Rate limit до аутентификации
Assigned to: Antigravity (Implementation Orchestrator)
Priority: MEDIUM (доступность / защита Session Store)
Date: 2026-08-21
Base SHA: 906148813ee66f6f52d7c291f335c1ebdca2a057
Проблема
После перехода Session Store на базу данных (Prisma) и переноса rate limiter на user-scoped ключи (sessionUser.id), запросы без cookie/сессии сначала обращаются к Session Store / базе данных (в requireAuthenticatedUser), и только потом попадают под rate limiter. Неаутентифицированный флуд создает нелимитированную нагрузку на Session Store / БД.
Scope
- Ввести дешёвый pre-auth rate limit по идентичности клиента (
resolveClientIp(req)), срабатывающий ДО обращения к session store на защищенных маршрутах. - Сохранить все существующие user-scoped лимиты (второй рубеж).
- Проанализировать варианты архитектуры: pre-auth guard в хендлерах / helper vs
middleware.ts/requireAuthenticatedUser/ rate-limiter. - Написать тесты
tests/pre-auth-rate-limit.test.ts. - Полный verification gate и отчет в
agents/antigravity/done/TASK-2026-08-21-12-pre-auth-rate-limit.md.