Nginx+PHP防webshell跨站,跨目录的安全设置,多种方式,适合php5.3以上

Nginx+PHP防webshell跨站,跨目录的安全设置,多种方式,适合php5.3以上
方法1:在Nginx配配置文件server{ }中加入:

fastcgi_param PHP_ADMIN_VALUE “[参数名]=[值]“;
例如:php

#fastcgi_param PHP_VALUE sessions.save_path=/home/www/sessions/
fastcgi_param PHP_ADMIN_VALUE “open_basedir=/usr/local/nginx/html”;html

优势:
能够设置变量,就能够写一个在公共文件里面include过来就好了,
好比: fastcgi_param PHP_ADMIN_VALUE “open_basedir=$host”;nginx

缺点:
$_SERVER里面会多出这个值来,
$_SERVER['PHP_ADMIN_VALUE']=”open_basedir=/home/www/docs”web

方法2:在php.ini中加入:shell

[HOST=www.lpboke.com]
open_basedir=/usr/local/nginx/html:/tmp
[PATH=/usr/local/nginx/html]
open_basedir=/usr/local/nginx/html:/tmp安全

优势:
这种方式应该是官方在5.3里面默认提供的,也不会出现多个$_SERVER['PHP_ADMIN_VALUE']值。session

缺点:
每添加一个站都要去修改下php.ini,比较麻烦,并且网站多了,就是是一大堆。ide

方法3:修改php.ini的user_ini.filename网站

这种我的暂何尝试.url

方法4:修改php源代码

Nginx防跨目录、跨站设置方法之修改PHP源代码

php5.3一样能够使用php5.2的方式修改源代码.

优势:
设置好了,就和之前同样的使用,不须要再添加任何代码.

缺点:
不利于php升级.

我的推荐方法1和方法3,应为常常修改php.ini不是一个好的方法,至于nginx的配置文件能够用include因此没必要修改主配置文件。

最后建议你们把上传目录、session目录也隔离掉,防止包含这2个目录的文件,写shell….

相关文章
相关标签/搜索