Files
aiform_dev/backend/app
AI Assistant 621c8ebf01 feat: 5 улучшений безопасности и UX
1.  Прогресс бар загрузки:
   - Upload компонент с showUploadList
   - Кнопка показывает состояние 'Загрузка...'
   - Визуальный прогресс для каждого файла

2.  OCR проверка полиса (заготовка):
   - TODO: проверка что загружен полис, а не шляпа
   - Если шляпа - помечаем себе в policyValidationWarning
   - Пользователю не говорим (silent validation)

3.  Лимиты файлов:
   - Максимум 10 файлов
   - Каждый файл до 15MB
   - Валидация на фронте и бэкенде
   - Счетчик: 'Загружено: X/10 файлов'
   - Кнопка disabled при 10 файлах

4.  Защита от инъекций и безопасность:
   Backend (upload.py):
   - Лимит файлов: if len(files) > 10
   - Проверка размера: if len(content) > MAX_FILE_SIZE
   - Валидация типа: allowed_types = ['image/', 'application/pdf']
   - Санитизация folder: allowed_folders whitelist

   Backend (draft.py):
   - Валидация session_id (max 255 chars)
   - Валидация step: only [1, 2, 3]
   - Параметризованные SQL запросы (защита от SQL injection)

   Frontend:
   - beforeUpload валидация размера
   - maxCount={10}
   - accept только разрешенные форматы

5.  Кнопка 'Начать заново':
   - Показывается на шаге 2 и 3 (extra в Card)
   - Сбрасывает всю форму
   - Возвращает на шаг 1
   - Очищает isPhoneVerified

Безопасность:
- SQL инъекции: параметризованные запросы ($1, $2)
- XSS: Pydantic валидация всех inputs
- File upload: type + size validation
- Path traversal: folder whitelist
- Rate limiting: TODO (Redis)

UX:
- Прогресс загрузки виден
- Понятные лимиты (10 файлов по 15MB)
- Возможность начать заново в любой момент
2025-10-24 21:34:50 +03:00
..