16 lines
1.5 KiB
Markdown
16 lines
1.5 KiB
Markdown
# 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
|
|
1. Ввести дешёвый pre-auth rate limit по идентичности клиента (`resolveClientIp(req)`), срабатывающий ДО обращения к session store на защищенных маршрутах.
|
|
2. Сохранить все существующие user-scoped лимиты (второй рубеж).
|
|
3. Проанализировать варианты архитектуры: pre-auth guard в хендлерах / helper vs `middleware.ts` / `requireAuthenticatedUser` / rate-limiter.
|
|
4. Написать тесты `tests/pre-auth-rate-limit.test.ts`.
|
|
5. Полный verification gate и отчет в `agents/antigravity/done/TASK-2026-08-21-12-pre-auth-rate-limit.md`.
|