Я использую php на сервере Linux / Apache. У меня есть три типа каталогов, например
|_ Writeale Directory
|_ PHP Files
|_ Image Files
Записываемый каталог будет использоваться только PHP для записи некоторых текстов, изображений ... Файлы PHP, выполняемые сервером и возвращающие коды HTML, Каталоги файлов изображений содержат только изображения, такие как jpeg gif swf ....
Какие разрешения необходимы для каждого каталога? Какое разрешение по умолчанию для каталога (созданного FTP или PHP)? Значение моего сервера по умолчанию - 755. Это безопасно?
Влияют ли разрешения на производительность сервера?
Вы не можете разработать модель безопасности, не зная, какие объекты должны иметь контролируемый доступ, и каким пользователям какой доступ требуется. Но вы не упомянули, как (и, что более важно, кем) файлы развертываются / обновляются. Вы также не указали, кому принадлежат файлы / каталоги - в отсутствие этого "0755" совершенно бессмысленно.
Неявно, все файлы должны быть доступны для чтения uid веб-сервера, если PHP работает как uid веб-сервера. Но есть и другие способы управления взаимодействием между PHP-скриптами и файлами (suPHP, safe_mode).
Какие разрешения необходимы для каждого каталога?
Правильные - точнее сказать невозможно.
Что такое разрешение по умолчанию для каталога (созданного FTP или PHP)?
Это зависит от того, как вы настроили PHP, FTP, вашу операционную систему и систему контроля разрешений.
Значение моего сервера по умолчанию - 755. Это безопасно?
Возможно нет. Разрешение исполняемых файлов в корне вашего документа опасно. Таким образом обеспечивается прямой доступ к загруженным (пользователем) файлам.
Очень общий обзор:
В зависимости от страны, в которой вы находитесь, вы можете нести ответственность, если разрешите людям загружать вирусы и распространять их для загрузки.
Во-первых, разрешения имеют какое-либо влияние на производительность. Если быть более точным, разрешения проверяются каждый раз, какие они могут быть определены, без ограничений производительности. Вы должны установить максимально ограничительные разрешения из соображений безопасности. Если ваш веб-сервер обращается к вашим файлам с вашей учетной записью, измените доступ к каталогу на 700. Если веб-сервер обращается к вашим файлам с пользователем www-data, вы можете изменить группу или другую для доступа. Вы не даете нам информацию, но веб-серверу нужно писать в этих каталогах? Или просто читаете?
Разрешения по умолчанию определяются параметром umask в вашей оболочке, на вашем FTP-сервере или в вашем PHP.