PHP: Каким должно быть разрешение для каталога, в котором я храню загруженные пользователем файлы? - PullRequest
1 голос
/ 08 сентября 2011
  • Я использую хостинг на Linux и храню некоторые загруженные пользователем файлы.Каким будет разрешение (то есть 0755) для каталога , где я буду хранить эти загруженные файлы?

  • Кроме того, каким должно быть новое разрешение загруженных файлов файл ?В настоящее время я даю разрешение 0755 с помощью команды chmod, достаточно ли это безопасно?

Теперь я использую код, подобный следующему:

    if (move_uploaded_file($_FILES[$name]['tmp_name'], $targetPath)) {
        // CHMOD
        chmod($targetPath, 0755);
    } else {
        return array(false,"Can not move file. Upload failed.");
    }

где$targetPath - это новое местоположение загруженного файла.

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 08 сентября 2011

Попробуйте 0750, принадлежащий процессу веб-сервера (www-data?).Нет никаких оснований предоставлять кому-либо, НО веб-серверу какие-либо права на этот каталог, если только у вас нет другой учетной записи, которая этого требует.В этом случае создайте выделенную группу для ваших www-данных и «других» учетных записей, а затем выполните chgrp каталог этой новой группы и сделайте его 0770.

Если у вас нет веских причин, НЕ предоставляйте права на выполнение.в загружаемом файле.Если вы НЕ ОЧЕНЬ осторожны с загрузкой, кто-то может отправить и бинарный файл, и ваш сервер широко откроет дверь.Итак ... 0640 для файлов, 0750 для каталогов.

...