Nginx+PHP防webshell跨站,跨目錄的安全設置,多種方式,適合php5.3以上

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

fastcgi_param PHP_ADMIN_VALUE “[參數名]=[值]“;
例如:

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

優點:
可以設置變量,就可以寫一個在公共文件裏面include過來就行了,
比如: fastcgi_param PHP_ADMIN_VALUE “open_basedir=$host”;

缺點:
$_SERVER裏面會多出這個值來,
$_SERVER['PHP_ADMIN_VALUE']=”open_basedir=/home/www/docs”

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

[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']值。

缺點:
每添加一個站都要去修改下php.ini,比較麻煩,而且網站多了,就是是一大堆。

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

這種個人暫未嘗試.

方法4:修改php源代碼

Nginx防跨目錄、跨站設置方法之修改PHP源代碼

php5.3同樣可以使用php5.2的方式修改源代碼.

優點:
設置好了,就和以前一樣的使用,不需要再添加任何代碼.

缺點:
不利於php升級.

個人推薦方法1和方法3,應爲經常修改php.ini不是一個好的方法,至於nginx的配置文件可以用include所以不必修改主配置文件。

最後建議大家把上傳目錄、session目錄也隔離掉,防止包含這2個目錄的文件,寫shell….



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章