在php程序中包含有file inclusion的时候,php要开启一下两个功能:
allow_url_fopen on
allow_url_include on但是开启这两个功能之后伴随的是url漏洞,例如:
http://192.168.2.109/DVWA-1.9/vulnerabilities/fi/?page=include.php
这个连接是正常的连接,但是如果在page后面访问的如果是C:\XXX文件,这样就是php的一个漏洞,如何去防御这种注入
有很多人说把allow_url_fopen on 以及allow_url_include on关闭,但是,关闭之后php很多功能模块无法使用,现在最好的解决方法是用Suhosin。
Suhosin是php的一个扩展模块,能够加强php脚本语言的安全性。
有关Suhosin的详细信息请参见:http://www.shenqhy.com/using-the-php-suhosin-protect-your-environment-install-suhosin.html
linux下php安装Suhosin
1、安装编译工具
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl2、安装suhosincd /usr/local/src #进入软件包存放目录wget #下载tar zxvf suhosin-0.9.33.tgz #解压cd suhosin-0.9.33 #进入安装目录/usr/local/php5/bin/phpize #用phpize生成configure配置文件./configure --with-php-config=/usr/local/php5/bin/php-config #配置make #编译make install #安装安装完成之后,出现下面的界面,记住以下路径,后面会用到。/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/ #suhosin模块路径3、配置php支持suhosinvi /usr/local/php5/etc/php.ini #编辑配置文件,在最后一行添加以下内容extension="suhosin.so"4、测试vi /usr/local/nginx/html/phpinfo.php #编辑<?phpphpinfo();?>:wq! #保存退出service php-fpm restart #重启php-fpmservice nginx restart #重启nginx至此可以用phpinfo查看php中关于SUhosin信息。
参见:http://www.osyunwei.com/archives/5313.html