PHP5.2.0中allow_url_include的应用和解释

2016-01-29 13:23 5 1 收藏

PHP5.2.0中allow_url_include的应用和解释,PHP5.2.0中allow_url_include的应用和解释

【 tulaoshi.com - PHP 】

    【PHPChina讯】PHP常常因为它可能允许URLS被导入和执行语句被人们指责。事实上,这件事情并不是很让人感到惊奇,因为这是导致称为Remote URL Include vulnerabilities的php应用程序漏洞的最重要的原因之一。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

    因为这个原因,许多安全研究人员建议在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扩展.

    原文地址:http://blog.php-security.org/archives/45-PHP-5.2.0-and-allow_url_include.html

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

来源:http://www.tulaoshi.com/n/20160129/1489997.html

延伸阅读
标签: Web开发
AJAX无疑是2005年炒的最热的Web开发技术之一,当然,这个功劳离不开Google。我只是一个普通开发者,使用AJAX的地方不是特别多,我就简单的把我使用的心得说一下。(本文假设用户已经具有JavaScript、HTML、CSS等基本的Web开发能力) [AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互...
标签: PHP
一、 XML简介 XML(可扩展的标注语言)是一种W3C标准,主要用于Web应用程序和服务器之间实现容易的交互、数据的存储与使用。 使用XML标准编码的数据具有能容易被人和计算机解释的意义和结构。XML数据是平台和应用程序独立的。不用多说,这本身就使XML成为适合于互联网的一个理想的数据交换格式(事实上,它正是因这一用途...
标签: PHP
         INCLUDE 语句   作 者 : 扬眉       PHP3.0 的另外一个强大的功能就是可建立 HTML 模板,当要建立很多风格相近的页面的时候,用模板能够节约很多时间和精力。比如,如果想给每个页面的底部加入页脚,就像这样的: Copyright (c) 1997-2000 All righ...
标签: Web开发
    在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据).     ASPX的用户控件就...
标签: Web开发
动态INCLUDE     用jsp:include动作实现 jsp:include page="included.jsp" flush="true" /它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE    用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面%@ include file="inclu...

经验教程

145

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部