|
Apache-модуль
Когда PHP используется как Apache-модуль, он наследует пользовательские
права доступа Apache'а (обычно это пользователь "nobody"). Это оказывает
влияние на обеспечение безопасности и авторизации. Например, если вы используете
PHP для доступа к базе данных, и если эта БД не имеет встроенного контроля
доступа, вы должны будете обеспечить доступ к этой БД для пользователя
"nobody". В этом случае зловредный скрипт может получить доступ к БД и
изменить её, даже не имея имени и пароля. Тогда хакер сможет получить доступ к web-странице
администратора БД и уничтожить все ваши БД. Защититься от этого можно с
помощью авторизации Apache, или разработав вашу собственную модель доступа с
использованием LDAP, .htaccess-файлы, etc. и включив этот код как часть ваших PHP-скриптов.
Часто, когда безопасность установлена на таком уровне, где PHP-пользователь
(в данном случае - пользователь Аpache) имеет минимальный риск вторжения,
обнаруживается, что у PHP отсутствует возможность записывать в любые файлы
пользовательских директорий. Или, возможно, отсутствует возможность доступа к,
или изменения, БД. Поставлена защита от записи как "хороших", так и "плохих"
файлов, или выполнения как "хороших", так и "плохих" транзакций.
Обычной ошибкой бывает в этом случае предоставление доступа apache
root или расширение возможностей Аpache'а каким-нибудь другим способом.
Увеличение пользовательского доступа Apache'а к корневой директории/root
очень опасно и может завалить всю систему, поэтому sudo,
chroot или другой подобный запуск как root не должен выполняться теми, кто
не считает себя профессионалами в вопросах безопасности.
Есть несколько простых решений. Используя open_basedir,
вы можете управлять ограничением количества директорий, которые могут
использоваться PHP. Вы можете также установить области apache-only, ограничив web-активность не-пользовательскими или не-системными файлами. |
|