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调用Oracle存储过程的方法
Sep 12 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
sphinx增量索引的一个问题
Jun 14 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 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 面向对象详解
2012/09/13 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
python比较两个列表大小的方法
2015/07/11 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
特步官方商城:Xtep
2017/03/21 全球购物
什么是方法的重载
2013/06/24 面试题
Delphi笔试题
2016/11/14 面试题
业务代表的岗位职责
2013/11/16 职场文书
技术总监岗位职责
2013/12/05 职场文书
篮球赛口号
2014/06/18 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android