Выбор ответа Junior SSRF, файлы и редиректы обновлено
Проверка типа загружаемого файла
Вопрос
Как правильно проверять, что пользователь загрузил картинку?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: По содержимому и разбору библиотекой изображений, с перекодированием и своим именем. Расширение и Content-Type задаёт клиент, их легко подделать.
Варианты ответа
- По расширению
.jpgили.pngв имени файла, приведённому к нижнему регистру - По содержимому и разбору библиотекой изображений, с перекодированием и своим именемправильный ответ
- По заголовку
Content-Type: image/jpegиз запроса, который выставляет браузер - Проверять не нужно, если файл меньше 5 МБ и хранится вне корня веб-сервера
Разбор
Расширение и Content-Type задаёт клиент, их легко подделать. Разбор и перекодирование изображения гарантируют, что на выходе картинка, и удаляют вредное содержимое и метаданные. Размер не говорит о безопасности.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.