🔒 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:
32
CHANGELOG.md
32
CHANGELOG.md
@@ -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 /` - авторизованная информация о персональном хранилище
|
||||
|
||||
Reference in New Issue
Block a user