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….

相關文章
相關標籤/搜索