@arctblake

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

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

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

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

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

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект