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代码优化及php相关问题总结
Oct 09 PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
PHP学习笔记之数组篇
Jun 28 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
php异步多线程swoole用法实例
Nov 14 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 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截取中文字符串的问题
2006/07/12 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
在python中使用nohup命令说明
2020/04/16 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
python 操作excel表格的方法
2020/12/05 Python
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
协议书模板
2014/04/23 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
优秀教师申报材料
2014/12/16 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
python_tkinter事件类型详情
2022/03/20 Python
Python软件包安装的三种常见方法
2022/07/07 Python