Было много тем, посвященных безопасности загрузки изображений, но, во-первых, это разрешение каталога 644
. Затем вам нужно позаботиться о названии, как указано в комментариях, метка времени - это довольно хороший способ, однако она должна сочетаться с некоторыми случайно генерируемыми значениями (или использовать временную метку, включая миллисекунды), однако, если вам нужно предоставить изображения значащее имя, вы должны дезинфицировать имя, предоставленное пользователем, отфильтровать нулевые байты, обход каталога и другие опасные символы (я бы выделил белый список и ограничил длину имени изображения или произвольно сгенерировал строку).
Вместо того, чтобы помещать изображение за пределы веб-корня, я предпочитаю использовать .htaccess
с опцией php_flag engine off
в нем, чтобы отключить любое выполнение php в каталоге. Кроме того, размещение изображений вне корневого веб-узла делает их недоступными, поэтому вы не сможете использовать их в теге <img>
, если только вы не используете PHP-скрипт для обслуживания изображения (это довольно безопасный метод, если он выполняется правильно).
Наконец, вы хотите проверить, загружено ли действительное изображение, обычно используется библиотека GD
, в частности, getimagesize
, которая вернет размер изображения только в том случае, если загружено допустимое изображение.
Также проверьте это topic на безопасность загрузки изображений.
Если вы установили chmod из папки на 644 и переименовали изображение, например, с отметкой времени, вы должны быть в порядке – JTC
, это позволит пользователям загружать файлы в этот каталог, если chmod установлен в 644, потому что здесь http: // www. draac.com/chmodchart.html слово сможет читать только. И могут ли быть дубликаты временных меток, когда одновременно загружаются несколько пользователей. – codeGEN
Добавлена безопасность, основанная на предположении, что кто-то может загрузить файл php или другой исполняемый файл. Наличие загружаемого каталога вне webroot выдает эти файлы или достигает их. Вы можете chmod каталог до 755 во время загрузки и вернуться к 644 после. – Daniel