|
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-активность
не-пользовательскими или не-системными файлами.
|
|