Загрузка может привести к RCE (исполняемый файл в webroot), XSS (SVG/HTML), path traversal имени файла, переполнению диска и раздаче malware другим пользователям.
Разбор
- Whitelist расширений и MIME + проверка содержимого (magic bytes).
- Храните вне webroot; отдавайте через отдельный handler с
Content-Disposition.
- Переименовывайте в random id; нормализуйте путь.
- Лимит размера, антивирус/сканер для высокого риска.
Итог
Upload — граница доверия: валидация, изоляция хранения и безопасная раздача.