Передача изображения работает только с определенными разрешениями?

Я использую PHP для перемещения изображения в определенный каталог. Сбой, если у меня есть / tmp / с разрешениями 755, но не сбои, если у меня есть его с 777. Поскольку 777 не является безопасным, есть ли другой способ сделать это?

Мой PHP-код такой:

$dir = '/var/www/spectrom.benrosen.org/uploadedimages/';
$file = basename($_FILES['uploadimage']['name']);
$uploadfile = $dir . randomize() . $file;

if (move_uploaded_file($_FILES['uploadimage']['tmp_name'], $uploadfile)) {
exit('{"result": "successful"}');
} else {
exit('{"result": "could not upload image."}');

}

0

Решение

Я бы не стал беспокоиться о папке / tmp. Любой пользователь должен иметь возможность писать в него. Вы не должны оставлять ничего чувствительного в папке tmp.

Это также не удастся, в зависимости от настроек вашей папки uploadimages. Сделайте владельцем этой папки процесс PHP. Это зависит от системы. Если запущен apache, он может управляться через .htaccess, но определенно httpd.conf

0

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

Гарр прав насчет папки / tmp. В любом случае, если вы беспокоитесь о безопасности папки, проверьте это http://shapeshed.com/securing_upload_folders_in_php_on_unix_servers/ в нем объясняется, как преобразовать разрешение на загрузку в папку 755.

0

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