@arctblake

Валидация загружаемого файла, какие проверки необходимо добавить?

0) На фронтэнде позволять загружать только определенные типы файлов. Ради комфорта, а не безопасности, конечно.
На сервере:
1) Проверить расширение файла.
2) Проверить Content-Type.
3) Прочитать первые 512 байт и закинуть их в функцию, определяющую Content-Type файла. Результат должен совпасть со вторым пунктом.
4) Проверить размер файла.

Чисто в теории, можно будет обойти эту валидацию, запихав скрипт в середину картинки, тогда и расширение будет соответствовать и C-T тоже. Но тогда сам файл будет сохранен на сервере, как, например, alala.jpg, и тогда его нельзя будет запустить, как скрипт, или я ошибаюсь?

Достаточна ли такая валидация?
  • Вопрос задан
  • 742 просмотра
Пригласить эксперта
Ответы на вопрос 3
alsopub
@alsopub
Хорошо расписали.
Осталось проверить отсутствие этой уязвимости - https://forum.antichat.ru/threads/222063/
И можно запускать сервис :)
Ответ написан
Комментировать
@entermix
Запретить прямое выполнение файлов в обход index.php не вариант?
Ответ написан
Комментировать
Можно загрузить годный с точки зрения валидации файл, который будет содержать вредоносные инструкции.
Допустим, вписать в некоторые участки изображения PNG код для эксплуатации уязвимых версий компонентов системы, обрабатывающих файл.
Так что помимо валидаций может имеет смысл ещё сканировать антивирусами с последними обновлениями баз данных.

А, вообще,
Why File Upload Forms are a Major Security Threat
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы