2

похоже, что единственный способ заставить приложения PHP работать - дать каждому файлу 0777 разрешений. Это безопасно для среды веб-сервера?

т.е. кто-нибудь сможет редактировать мои файлы?

3 ответа3

2

Да. Любой сможет редактировать ваши файлы. Вот что означает последняя "7".

Не зная вашего приложения, я предполагаю, что, возможно, вам нужно разрешение 775 для тех файлов, которые должны быть прочитаны / записаны через приложение, и убедитесь, что группа установлена для пользователя apache. Тем не менее, имейте в виду, что если что-то скомпрометировано на этом устройстве, люди, вероятно, все еще могут читать и записывать эти файлы - не существует простого способа обойти это. (Вы можете решить проблему несколькими способами, но ни один из них не прост).

1

На этот вопрос довольно хорошо ответили в стеке.

Вам нужно заглянуть в suexec. Настраивать неудобно, если вы не знаете, что делаете, но это может помочь изолировать нарушения, предоставляя apache доступ к файлам от имени пользователя.

0

Работа демонов, т. Е. Веб-сервера, от имени пользователя без полномочий root дает вам уровень защиты, если этот конкретный исполняемый файл скомпрометирован. (Обратите внимание, что "разветвляющиеся" серверы, такие как apache имеют один процесс, который работает как корневой, а рабочий подпроцесс - нет. Это необходимо для того, чтобы apache мог связываться с привилегированным (<1024) номером порта.)

Если ваш веб-сервер, например, apache , и он работает как www-data:www-data , то тот, кто найдет и затем воспользуется эксплойтом, может иметь только те же привилегии, что и пользователь www-data или группа www-data . Он также может получить доступ только к файлам, которые принадлежат пользователю www-data , принадлежат группе www-data или доступны для чтения / записи / исполняемого файла.

Имея PHP скрипты модифицируемые (то есть разрешение на запись) от www-data будет означать , злоумышленник , который получил в порядке вашего HTTP - демона , то может заменить этот сценарий с любым кодом , который он / она хочет. Сценарии PHP не должны быть модифицируемыми с помощью www-data если они плохо написаны или не предназначены для запуска в контексте веб-сервера (что встречается редко).

Вы можете захотеть изменить некоторые каталоги, если приложение сохраняет данные или иным образом использует файловую систему. Я обычно символически связываю их с основной файловой системой. Даже в этом случае для полной безопасности вы не хотите, чтобы www-data:www-data мог записывать новые файлы во все, с чего ваш HTTP-демон будет вызывать PHP. apache , используя файлы .htaccess и разделы <Directory> в файлах конфигурации, можно настроить, чтобы не выполнять PHP в определенных каталогах - если вы хотите быть действительно всесторонним.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .