Я использую 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."}');
}
Я бы не стал беспокоиться о папке / tmp. Любой пользователь должен иметь возможность писать в него. Вы не должны оставлять ничего чувствительного в папке tmp.
Это также не удастся, в зависимости от настроек вашей папки uploadimages. Сделайте владельцем этой папки процесс PHP. Это зависит от системы. Если запущен apache, он может управляться через .htaccess, но определенно httpd.conf
Гарр прав насчет папки / tmp. В любом случае, если вы беспокоитесь о безопасности папки, проверьте это http://shapeshed.com/securing_upload_folders_in_php_on_unix_servers/ в нем объясняется, как преобразовать разрешение на загрузку в папку 755.