Безопасно ли загружать файлы после проверки с помощью mime_content_type () и imagecreatefromjpg ()?

Я прочитал много статей (в том числе этот) говорить о безопасной загрузке файлов в PHP, и я думаю, что это лучший способ убедиться, что загруженный файл является безопасным.

Во-первых, я использую mime_content_type (), чтобы проверить тип его файла.
Если это JPG, JPEG или PNG, я собираюсь клонировать его с помощью imagecreatefromjpg (), в случае успеха, сохранить новый файл и уничтожить оригинал.

Я не уверен, что это достаточно безопасно, или мне нужно сделать что-то еще.
Я ценю любую помощь.

1

Решение

Я сделал некоторые тесты для mime_content_type

  1. Когда я создал текстовый файл и назвал его «обманным путем» spoof.jpg
    обнаруженный тип пантомимы все еще text/plain

  2. Когда я запустил его на несуществующий файл, он бросает

    PHP Warning: mime_content_type(not.exist):

    failed to open stream: No such file or directory

Это означает mime_content_type проверки содержимое файла для типа пантомимы.

Это абсолютно безопасно, хотя? Это безопасно обнаружить правда MIME, это точно;)
Однако вам следует также проверить наличие таких параметров, как размер или очистка имени файла (при повторном использовании), для получения более подробной информации о безопасности есть хороший ответ по стеку безопасности: Риски формы загрузки изображений PHP

обратите внимание, что в руководстве по PHP это находится в меню «Fileinfo Functions» =>, это как бы подразумевает, что он использует механизмы чтения файлов, хотя это правда, что ручной ввод не говорит об этом явно …

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]