在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 perl
2、安装suhosin
cd /usr/local/src  #进入软件包存放目录
wget http://download.suhosin.org/suhosin-0.9.33.tgz  #下载
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支持suhosin
vi /usr/local/php5/etc/php.ini  #编辑配置文件,在最后一行添加以下内容
extension="suhosin.so"
4、测试
vi /usr/local/nginx/html/phpinfo.php   #编辑
<?php
phpinfo();
?>
:wq! #保存退出
service php-fpm restart  #重启php-fpm
service nginx restart  #重启nginx

至此可以用phpinfo查看php中关于SUhosin信息。

参见:http://www.osyunwei.com/archives/5313.html

最新文章

  1. poj3122-Pie(二分法+贪心思想)
  2. LeetCode——Letter Combinations of a Phone Number
  3. APACHE 在windows下的配置
  4. 用cookie记住用户名
  5. 将Table表格导出到Excel
  6. X32,X64,X86 代表什意义
  7. WCF第二天
  8. 抓包利器Fiddler
  9. 小div在大div中垂直居中,以及div在页面垂直居中
  10. Sui 弹框固定
  11. phpmyadmin 4.x 版本无法看到登录框的处理
  12. 判断直线与线段相交 POJ 3304 Segments
  13. TCP/IP笔记 一.综述
  14. SCSS &amp; SASS Color 颜色函数用法
  15. Linux cache 缓存过大
  16. 【51NOD】1006 最长公共子序列Lcs(动态规划)
  17. 多线程学习:Volatile与Synchronized的区别、什么是重排序
  18. fastText 安装
  19. 利用spring的ApplicationListener监听某一类事件的发生
  20. mysql 索引使用策略及优化

热门文章

  1. 【jQuery】【转】jQuery中filter()和find()的区别
  2. VirtualBox 共享文件夾
  3. linux开发缩写
  4. Spark HA实战
  5. Linux文件搜索命令
  6. Mifare系列3-卡的能源和数据传递(转)
  7. 利用scrapy-splash爬取JS生成的动态页面
  8. 【转载】 input 输入格式化
  9. 用Charles抓取https接口数据
  10. BZOJ4247挂饰