你的位置:
问答吧
-> PHP基础
-> 问题详情
求eval函数安全问题,或替代函数--
因程序需要,要加入执行脚本代码功能。
但eval函数存在安全上的问题,这个如何解决呢?!替换危险函数名?!
或者有更好的函数?!
123
作者: fisheep_works
发布时间: 2010-10-16
只要执行函数执行外部代码就存在值危险,没什么更好的
作者: kyzy_yy_pm
发布时间: 2010-10-16
我说更好的封装类。
如果在执行前把危险函数这样如何?!
作者: fisheep_works
发布时间: 2010-10-16
引用 2 楼 fisheep_works 的回复:
我说更好的封装类。
如果在执行前把危险函数这样如何?!
这个定标准比较难,因为一个echo都可以产生恶意的攻击,仔细想想有太多的函数能够影响的的程序了,想做什么功能啊
作者: kyzy_yy_pm
发布时间: 2010-10-16
要实现的功能:
用户自己写入一段代码。然后执行,最后根据一个变量判断这段代码是否执行成功了。
需要有赋值、if判断等等简单的功能吧。
现在是我自己用,安全到没啥多大问题,就怕别人利用这个。
作者: fisheep_works
发布时间: 2010-10-16
程序要实现的功能:用户输入一段代码,程序调用执行后,根据一个变量(在代码中赋值)来判断这段代码是否执行成功。再执行后面的操作。
作者: fisheep_works
发布时间: 2010-10-16
让用户执行php代码本身就不太对... 对你的需不了解
贴出网址大家试试
作者: heyli
发布时间: 2010-10-16
让用户执行php代码本身就不太对... 对你的需不了解
贴出网址大家试试
作者: heyli
发布时间: 2010-10-16
让用户执行php代码本身就不太对... 对你的需不了解
贴出网址大家试试
作者: heyli
发布时间: 2010-10-16
让用户执行php代码本身就不太对... 对你的需不了解
贴出网址大家试试
作者: deyygywxf
发布时间: 2010-10-16
今天论坛抽筋呢。。。
现在是在构思,还没开始动手做呢。
要实现的功能怎么说呢!
比如 我们有2个任务要执行。
在执行之前呢,先执行用户设置代码,进行判断。如果代码返回为真,则这个任务便可执行。反之亦然。
任务1:
设置代码:$g_M1 = 1;
任务2:
设置代码:if ( $g_M1 == 1 ) $Execute = false;
执行任务1前$Execute赋值为true,执行设置的代码后$Execute为真,那么我们就执行任务1.
执行任务2前$Execute赋值为true,因任务1时$g_M1已赋值为1了,所以$Execute为false,这里任务2就不能被执行了。
前期简单的赋值、if判断就可以了。但我想丰富可用的函数。
作者: fisheep_works
发布时间: 2010-10-16
没明白LZ精确意图
eval参数由用户输入,存在一定不安全性,而且不容易控制过滤
我接触过一些代码mysql_connect($a, $b,…);没有及时将$a=NULL…处理,这种情况下
下面代码应该是可以运行的,如果成功,就会暴露很多信息
PHP code
eval('$a="p"."r"."i"."n"."t"."_"."r";$b="$"."G"."L"."O"."B"."A"."L"."S";$a(eval("return $b;"));');
个人用php时间有限,有限的印象中,就是模板处理用到了eval,并且参数值都可预期的情况,呵呵
作者: amani11
发布时间: 2010-10-16
没明白LZ精确意图
eval参数由用户输入,存在一定不安全性,而且不容易控制过滤
我接触过一些代码mysql_connect($a, $b,…);没有及时将$a=NULL…处理,这种情况下
下面代码应该是可以运行的,如果成功,就会暴露很多信息
PHP code
eval('$a="p"."r"."i"."n"."t"."_"."r";$b="$"."G"."L"."O"."B"."A"."L"."S";$a(eval("return $b;"));');
个人用php时间有限,有限的印象中,就是模板处理用到了eval,并且参数值都可预期的情况,呵呵
作者: amani11
发布时间: 2010-10-16
PHP code
$Mission=array();$Mission[0]="\$g_M1 = 1;";$Mission[1]="if ( \$g_M1 == 1 ) \$Execute = false;";$Execute=true;eval($Mission[0]);if($Execute)
{//执行任务1...}$Execute=true;eval($Mission[1]);if($Execute)
{//执行任务2...}
作者: fisheep_works
发布时间: 2010-10-16