nginx php 防止跨站,Nginx与PHP FPM环境下的权限分配与防跨站WEB安全 -电脑资料

相信不少数的网站管理员使用Nginx,并配合PHP FPM运行PHP程序,

之前写过一篇文章,讲述了如何使用ACL权限增强Nginx与PHP FPM环境的安全性,这方法步骤有点麻烦,而且OpenVZ下从物理服务器处挂载为ACL,使用过程中也存在一些问题。

先来讲述一下Nginx与PHP FPM环境下的问题:

服务器上有多个站点,为了安全,我会给每个站点的PHP分配不同的用户身份,因此PHP的执行身份会与Nginx的用户身份不同。

扩展名非.php的文件,会由Nginx去处理,扩展名为.php的文件,Nginx会交给FPM处理,因此Nginx与FPM都需要对文件有read的权限,由于Linux下文件的owner只能是唯一的一个用户,这就使得我必须赋予other对网站文件的读权限。意味着其他身份的用户,也能读取我网站的数据。

很明显,我的服务器是不会允许类似的情况发生。

由于文件所有者只能有一个,因此从这里下手就不太可能解决问题。Other是绝对不能允许拥有任何权限。明显,只能对Group下手。

Linux下的Group,可让多个用户加入至一个Group中,也可让一个用户加入至多个Group。既然如此,把nginx的执行用户加入到站点PHP的执行用户的群组就能完美解决此问题了。

要把用户加入至其他群组,使用usermod即可,其中需要以下参数:

-G:把用户加入至指定群组,Nginx与PHP FPM环境下的权限分配与防跨站WEB安全》(https://www.unjs.com)。

-a:配合-G把用户加入到指定群组,允许用户在不退出原群组的情况下加入至新的群组。

要一个用户加入多个群组,就一定要-a参数啦。

上图是我服务器其中一个FPM的pool的配置文件,根据配置文件,可看出该网站PHP的运行用户为mediawiki,群组为mediawiki。

我Nginx的执行用户为www-data,执行下面命令,就可以把用户www-data加入至群组mediawiki中:

1

usermod -aG mediawiki www-data

完成上面的步骤后,把网站文件的所有者和群组改成PHP的运行用户与群组:

1

chown -R mediawiki:mediawiki /var/www/mediawiki

然后给予所有者与群组对网站文件的读权限与对目录的执行权限(750或者550),因为我不需要写入权限,因此赋予550就够啦:

1

chmod -R 550 /var/www/mediawiki

这样操作后,即可避免其他用户查看网站的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值