Назад | Перейти на главную страницу

Запретить PHP включать файлы из каталогов других сайтов

В настоящее время я использую nginx 1.0.11 и PHP-FPM. У каждого сайта есть собственный пользователь / группа, и их домашний каталог находится в /srv/www/.... У меня есть пулы PHP-FPM, настроенные для работы в качестве пользователя и группы сайтов на отдельных портах (9001 для site1, 9002 для site2 ...). Помогает ли это с точки зрения безопасности?

nginx работает как www-data: www-data. В настоящее время, если у меня есть PHP-скрипт на site1 (/srv/www/site1.com/www/public_html/script.php)я могу это сделать include $_SERVER['DOCUMENT_ROOT'] . "/../../../site2.com/www/public_html/index.html"; и прочтите файлы этого сайта.

Как я могу предотвратить это? Я заглянул в chroot но в домашнем каталоге каждого сайта есть символические ссылки на /dotfiles которые мне нужно сохранить, и я предполагаю, что nginx потребуется доступ к журналам на /var/logs/nginx/...

Посмотри на open_basedir. Есть несколько известных способов обойти это, но их можно предотвратить в config.

Почему в точечных файлах используются символические ссылки вместо жестких?