nginx的php目录权限控制问题

        先说下本vps 搭建的网站采用的是nginx + php + mysql 组合。

今天无聊上传了一个php webshell到我的vps server上。 结果是惨不忍睹。整个linux服务器的文件全可见,安全问题被我忽视了。看看截图。

image       看看截图吧被webshell了连我的备份文件都要被xxx。上面也丢了几个虚拟主机,一旦有一网站有程序漏洞被webshell了整个服务器都沦陷了。到百度 google 去搜索了下nginx的权限控制问题,虽然看到了解决方案,不过太不爽了。nginx真的非常好用,不过现在的问题是要解决权限问题。期待nginx以后的版本能解决这个问题,虚拟主机上的安全配置问题。

       找个时间准备把nginx换成apahce,鉴于个人站根本没上面流量Apache也绝对没问题。

打赏

9 评论

  1. 这个和Nginx是没有关系的,你怪错地方了。
    主要是php-cgi,给不同的网站运行属于不同用户组的php-cgi就可以了。
    做到不同的网站运行在不同的系统用户下,然后这个系统用户不给登录权限,php-cgi也用这个用户运行,开放一下啊/tmp的权限就行了,或者不同网站加载不同的php.ini,将tmp指定到网站目录下也行。
    这样才是比较彻底的解决办法,像Apache的open_base_dir是不可靠的,有多种方法可以绕过。

    1. 我知道和nginx无关,标题的鳌头而已。

      对linux用户权限控制一直不会,的好好学学。 感谢你的指点 [大笑]

    2. phpcgi是 单独的 www 组 www用户的。 不清楚怎么设置权限而让php只在该主机下的web根目录·

  2. 其实不用如此
    在nginx里面 配置下 location 就可以了 设置下 几个目录的执行权限

    1. 是这样的。不过nginx设计的初衷并没不是apche这样的纯web server。在性能上nginx比apahce没的说。具体很多细节功能上nginx还有路要走·

发表评论

电子邮件地址不会被公开。 必填项已用*标注