php allow_url_include的应用和解释


Posted in PHP onApril 22, 2010

因为这个原因,许多安全研究人员建议在php.ini配置中禁用指向allow_url_fopen。不幸的是,许多推荐这种方法的人,并没有意识到,这样会破坏很多的应用并且并不能保证100%的解决remote URL includes以及他带来的不安全性。

通常,用户要求在他们使用其他的文件系统函数的时候,php允许禁止URL包含和请求声明支持。

因为这个原因,计划在PHP6中提供allow_url_include。在这些讨论之后,这些特性在php5.2.0 中被backported。现在大多数的安全研究人员已经改变了他们的建议,只建议人们禁止allow_url_include。

不幸的是,allow_url_fopen和allow_url_include并不是导致问题的原因。一方面来说在应用中包含本地文件仍然是一件足够危险的事情,因为攻击者经常通过sessiondata, fileupload, logfiles,...等方法获取php代码………

另一方面allow_url_fopen和allow_url_include只是保护了against URL handles标记为URL.这影响了http(s) and ftp(s)但是并没有影响php或date(new in php5.2.0) urls.这些url形式,都可以非常简单的进行php代码注入。

Example 1: Use php://input to read the POST data 

<?php // Insecure Include // The following Include statement will // include and execute everything POSTed // to the server include "php://input"; ?>

Example 2: Use data: to Include arbitrary code

<?php // Insecure Include // The following Include statement will // include and execute the base64 encoded // payload. Here this is just phpinfo() include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+"; ?>

把这些放到我们的运算里面将会非常明显的发现既不是url_allow_fopen也不是url_allor_include 被保障。这些只是因为过滤器很少对矢量进行过滤。能够100%解决这个URL include vulnerabilities的方法是我们的Suhosin扩展.

PHP 相关文章推荐
PHP的FTP学习(三)
Oct 09 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
Jan 18 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
php+ajax实现无刷新分页
Nov 18 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP培训要多少钱
Jun 06 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 PHP
php strcmp使用说明
Apr 22 #PHP
PHP 加密解密内部算法
Apr 22 #PHP
PHP 根据IP地址控制访问的代码
Apr 22 #PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 #PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 #PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 #PHP
一个PHP的String类代码
Apr 20 #PHP
You might like
PHP获取文件相对路径的方法
2015/02/26 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
JavaScript中的property和attribute介绍
2011/12/26 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
python读写文件write和flush的实现方式
2020/02/21 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
机械专业个人求职自荐信格式
2013/09/21 职场文书
五年级音乐教学反思
2014/02/06 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
Python实现简单的猜单词
2021/06/15 Python