fix(proxy): harden security and add UpSnap debug logging
- XSS: escape serviceName in waking page HTML - Session TTL: 24h expiration with periodic cleanup - Rate limit: 5 login attempts / 15 min per IP - CORS: restrict to same-origin + localhost - SSRF: block localhost/metadata in service targets - UpSnap: log response bodies on auth/wake failures Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -57,10 +57,14 @@ Proxy матчит сервисы по `Host` заголовку. Если PC on
|
||||
- `POST /api/auth/login` — возвращает `{ token }` (UUID v4)
|
||||
- `POST /api/auth/logout` — удаляет сессию
|
||||
- `GET /api/auth/check` — проверяет, нужна ли auth и валиден ли токен
|
||||
- Сессии in-memory (`Map`), теряются при рестарте
|
||||
- Сессии in-memory (`Map`), TTL 24 часа, теряются при рестарте
|
||||
- Rate limiting: 5 попыток / 15 мин на IP для `/api/auth/login`
|
||||
- Auth middleware защищает `/api/*` кроме `/api/auth/*`
|
||||
- WebSocket: токен через query `?token=...`
|
||||
- Сервис-прокси (по Host) — без auth
|
||||
- CORS: только same-origin + localhost (для dev)
|
||||
- SSRF защита: service target не может указывать на localhost, metadata endpoints
|
||||
- XSS защита: HTML-экранирование в waking page
|
||||
|
||||
## Деплой
|
||||
|
||||
|
||||
Reference in New Issue
Block a user