🔒 Implement comprehensive security and DDoS protection

### Security Features:
- **Rate Limiting**: Redis-based IP tracking with configurable limits
  - General: 100 requests/minute (5min block)
  - Upload: 10 requests/5min (10min block)
  - Auth: 20 requests/15min (30min block)
- **Request Validation**: Path length, header count, suspicious patterns
- **Attack Detection**: Admin paths, script injections, bot patterns
- **Enhanced JWT**: Format validation, length checks, character filtering
- **IP Tracking**: X-Forwarded-For and X-Real-IP support

### Security Headers:
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- X-XSS-Protection: 1; mode=block
- Content-Security-Policy with strict rules
- Strict-Transport-Security with includeSubDomains

### CORS Hardening:
- Limited to specific domains: discours.io, new.discours.io
- Restricted methods: GET, POST, OPTIONS only
- Essential headers only

### Infrastructure:
- Security middleware for all requests
- Local cache + Redis for performance
- Comprehensive logging and monitoring
- Progressive blocking for repeat offenders

### Documentation:
- Complete security guide (docs/security.md)
- Configuration examples
- Incident response procedures
- Monitoring recommendations

Version bump to 0.6.0 for major security enhancement.
This commit is contained in:
2025-09-02 11:40:43 +03:00
parent d3bee5144f
commit 82668768d0
14 changed files with 803 additions and 124 deletions

View File

@@ -1,10 +1,40 @@
## [0.6.0] - 2025-09-02
### 🔒 Безопасность и защита от DDoS
- **СОЗДАН**: Модуль `security.rs` с комплексной системой защиты
- **ДОБАВЛЕНО**: Rate limiting по IP с конфигурируемыми лимитами
- Общие запросы: 100/мин (блокировка 5 мин)
- Загрузка файлов: 10/5мин (блокировка 10 мин)
- Аутентификация: 20/15мин (блокировка 30 мин)
- **ДОБАВЛЕНО**: Redis-based хранение счетчиков с локальным кэшем
- **ДОБАВЛЕНО**: Детекция подозрительных паттернов (admin paths, script injections)
- **ДОБАВЛЕНО**: Валидация запросов (размер, заголовки, путь)
- **ДОБАВЛЕНО**: Строгие заголовки безопасности (CSP, HSTS, XSS Protection)
- **ОГРАНИЧЕНО**: CORS до конкретных доменов
- **УЛУЧШЕНО**: Валидация JWT токенов (формат, длина, символы)
- **ДОБАВЛЕНО**: IP tracking с поддержкой X-Forwarded-For
### 🧹 DRY Refactoring
- **СОЗДАН**: Общий модуль `handlers/common.rs` для устранения дублирования
- **ИЗВЛЕЧЕНО**: Общая логика валидации токенов в `extract_and_validate_token()`
- **ИЗВЛЕЧЕНО**: Общие HTTP response helpers (`create_cached_response`, `create_error_response`)
- **ИЗВЛЕЧЕНО**: Общая логика кэширования ETag в `check_etag_cache()`
- **УПРОЩЕНО**: Все handlers теперь используют общие утилиты
- **УДАЛЕНО**: Дублирующиеся функции и константы
### 📦 Изменения квот
- **УВЕЛИЧЕНО**: Лимит квоты пользователя с 5 ГБ до 12 ГБ
### 📚 Документация
- **ДОБАВЛЕНО**: Подробная документация по безопасности (`docs/security.md`)
- **ОПИСАНО**: Конфигурация защиты, мониторинг, реагирование на инциденты
## [0.5.3] - 2025-09-02
### 🔄 Архитектурные изменения
- **УПРОЩЕНО**: Убран сложный роутинг Actix-web в пользу универсального обработчика
- **ДОБАВЛЕНО**: Прямое определение HTTP методов (GET/POST) в единой точке
- **УБРАНО**: HTTP API для управления квотами (quota endpoints)
- **СОХРАНЕНО**: ACME challenge поддержка для SSL сертификатов
### 📋 API Структура
- `GET /` - авторизованная информация о персональном хранилище