很多人在使用php的时候会遇到加密过的代码,例如使用base64编码,这里我们给出这样一段加密代码:
[php]$code = 7L0HYBxJliUmL23Ke39K9UrX4HShCIBgEyTYkEAQ7MGIzeaS7B1pRyMpqyqBymVWZV1mFkDM7Z28995777333nvvvfe6O51OJ/ff/z9cZmQBbPbOStrJniGAqsgfP358Hz8i8rqu6t+/zl’;
$unLock = gzinflate(base64_decode($code));
//打印解密出的源代码
var_dump ($unLock);[/php]
这样就可以正确解密出被加密过的代码。使用过wordpress的人可能会遇到一些类似的问题。
这里经常会用到eval()函数,这个函数平时使用的比较少,这个是源自linux的bash shell,这个函数在php中的作用是将字符串当做php来执行或者运算。
当然,字符串要完全符合php的格式,包括变量定义符号$不能被转义,结尾要有分号等。例如
[php]$value = ‘this is value’;
$string = "\$param = \"$value\";";
eval($string);
echo $param;[/php]
这一段的作用是为一个变量赋值。这个赋值语句在eval中被执行了。再看一个例子:
[php]$str = ‘this is hellogxp’;
$code = "print(‘$str’);";
eval($code);[/php]
这一段是执行了一个代言语句,这个语句被以字符串的形式写进一个变量,然后这个变量传给eval,eval把这个字符串当做php代码执行。
到此你对eval也有了一个简单的理解,其实这个函数对于网络安全的一些人员来说并不陌生,因为这个函数经常被黑客拿来使用,例如用它来制造php的后门程序,尤其是在POST,HEAD等提交数据的时候。javascript中也有一个此函数,后续讲解。
2023年五月 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -
近期文章