防止 PHP 包含来自其他站点目录的文件

防止 PHP 包含来自其他站点目录的文件

目前我正在运行 nginx 1.0.11 和 PHP-FPM。每个站点都有自己的用户/组,并且主目录位于 中/srv/www/...。我已将 PHP-FPM 池设置为以站点的用户和组的身份在不同的端口上运行(站点 1 为 9001,站点 2 为 9002...)。这对安全性有帮助吗?

nginx 以 www-data:www-data 的形式运行。目前,如果我在 site1 中有一个 PHP 脚本,(/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/...

答案1

看一下open_basedir。有几种已知的方法可以解决这个问题,但这些可以在配置中被阻止。

为什么点文件上使用符号链接而不是硬链接?

相关内容