9fb33be6b2
По аудиту маршрутов (OWASP API):
- DRF throttling: глобально UserRateThrottle 120/min; attendance-register —
ScopedRateThrottle 30/min, photo — UserRateThrottle. Анти-DoS/абьюз.
- Mattermost-вебхуки (slash + interactive): сверка токена через
hmac.compare_digest (constant-time) вместо '!='
- /api/attendance/register: PvmsClientError больше не уходит клиентом —
детали в лог, ответ общий ('Сервис учёта временно недоступен')
- /set-password/<token>: мягкий IP-троттл только на НЕвалидные токены
(легитимный валидный токен не блокируется)
Тесты: throttle attendance → 429; вебхук отклоняет неверный/пустой токен;
set-password троттлит невалидные, пропускает валидный. 801 тест, 0 провалов.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>