Выбор ответа Junior SSRF, файлы и редиректы обновлено

Проверка типа загружаемого файла

Вопрос

Как правильно проверять, что пользователь загрузил картинку?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: По содержимому и разбору библиотекой изображений, с перекодированием и своим именем. Расширение и Content-Type задаёт клиент, их легко подделать.

Варианты ответа

  1. По расширению .jpg или .png в имени файла, приведённому к нижнему регистру
  2. По содержимому и разбору библиотекой изображений, с перекодированием и своим именемправильный ответ
  3. По заголовку Content-Type: image/jpeg из запроса, который выставляет браузер
  4. Проверять не нужно, если файл меньше 5 МБ и хранится вне корня веб-сервера

Разбор

Расширение и Content-Type задаёт клиент, их легко подделать. Разбор и перекодирование изображения гарантируют, что на выходе картинка, и удаляют вредное содержимое и метаданные. Размер не говорит о безопасности.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.