Apache 和 Nginx 防止跨目录

一直都发现,LAMP 默认是可以跨目录的。也就是说,一个 PHP 文件管理器在 /var/www/ 下面,那么默认情况下,它可以访问 /var,哦不对,是任意文件。

上次换成 LNMP,发现每个文件夹下面都多了一个 .user.ini,才知道原来可以防止跨目录。

Nginx

.user.ini 好像是 FastCGI/FPM 什么专用的。写法很简单:

open_basedir=/path/to/your/site/root/dir:/tmp/:/proc/

如果程序不需要执行类似于 phpinfo 这样的语句的话,最后的 :/proc/ 可以不需要。

Apache

Apache 里面就不能使用 .user.ini 了。所以直接写道 vhosts 里面就好。

php_admin_value open_basedir "/path/to/your/site/root/dir:/tmp/:/proc/"

然后重启 apache。

留下评论