Csuper Blog

Csuper Blog

解决nginx防webshell跨虚拟主机目录访问
2010-11-16

很多公司可能因为业务需要,利用nginx跑多虚拟主机,而其我们习惯会把所有的虚拟主机web程序放在同一个目录下,这个样子有php的web站点可能会被利用漏洞上传webshell,黑客会利用这个漏洞去各个虚拟主机的web目录里面活动!
先贴出我们习惯的php.ini的open_basedir配置:
 

open_basedir = /data/www/wwwroot:/tmp
复制代码


:/data/www/wwwroot放置所有虚拟主机web的路径
黑客可以利用任何一个站点的webshell进到/data/www/wwwroot目录下的任何地方,这个样子对各个虚拟主机安全危害很大!


我的临时解决方法(期待nginx官方出相关解决方法):
譬如:/data/www/wwwroot目录下有4个虚拟主机:
 

bbs home space ucenter
复制代码

修改php.ini:
 

open_basedir = /data/www/wwwroot/bbs:/data/www/wwwroot/home:/data/www/wwwroot/space:/data/www/wwwroot/ucenter:/tmp
复制代码



这个样子用户上传webshell就无法夸目录访问了!

但是如果你的虚拟主机目录名很简单,他会通过下面图的地址来修改猜测,如果猜出来了也是可以跨目录访问的!所以争取让你的虚拟主机名字不要特别简单也不要有规律性,让黑客很容易猜到!


个人的经验,希望对大家有帮助!

发表评论: