Мой сервер centos 7
,с участием php 5.4
,apache 2.4
. Мой сайт находится в /var/www
.
Что касается apache
это только один пользователь читать или писать в /var/www
, Я установил владельца и группу всех файлов и папок на apache
:
Для папок и файлов только чтение:-r------- 1 apache apache 922 Jun 3 2014 connect.php
Для файлов нужно написать:-rw------- 1 apache apache 922 Jun 3 2014 connect.php
Что означает только 600
или 400
для разрешения файлов. (*. php не требуется x
разрешение)
Что касается разрешения папок, только 500
или 700
.
Это должно быть лучшей практикой, потому что разрешайте как можно меньше рекламы.
Есть ли проблема безопасности?
Нет это не лучшая практика. Пользователь, у которого apache работает должным образом не владеть любыми файлами или каталогами. Этот пользователь должен иметь только доступ для чтения ко всему, и особенно к исполняемым файлам, таким как *.php
, если только доступ для записи не требуется специально для конкретного случая, например для каталога загрузок.
Причина этого довольно проста: если злоумышленник может найти эксплойт, позволяющий ему выполнять свой собственный код в процессе веб-сервера, он может записывать в любые файлы, в которые веб-сервер может писать. Если веб-сервер имеет доступ на запись к исполняемым файлам, это означает, что они могут изменять исполняемые файлы, чтобы делать все, что выберет злоумышленник, всякий раз, когда пользователь обращается к соответствующим URL-адресам. Даже если у них есть доступ на запись только к неисполняемым файлам (например, *.html
), это дает им возможность контролировать контент, отправляемый пользователям вашего сайта, в том числе возможность отправлять им вредоносный javascript или встроенный контент.
Создание файлов, принадлежащих пользователю веб-сервера, с помощью chmod 400
не лучше, поскольку пользователь, владеющий файлом, может по желанию изменить свое разрешение, чтобы предоставить себе доступ на запись.