因程序需要,要加入执行脚本代码功能。但eval函数存在安全上的问题,这个如何解决呢?!替换危险函数名?!或者有更好的函数?!
123

解决方案 »

  1.   

    这个定标准比较难,因为一个echo都可以产生恶意的攻击,仔细想想有太多的函数能够影响的的程序了,想做什么功能啊
      

  2.   

    让用户执行php代码本身就不太对... 对你的需不了解 
    贴出网址大家试试
      

  3.   

    让用户执行php代码本身就不太对... 对你的需不了解 
    贴出网址大家试试
      

  4.   

    让用户执行php代码本身就不太对... 对你的需不了解 
    贴出网址大家试试
      

  5.   

    让用户执行php代码本身就不太对... 对你的需不了解  
    贴出网址大家试试
      

  6.   

    今天论坛抽筋呢现在是在构思,还没开始动手做呢。
    要实现的功能怎么说呢!比如 我们有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判断就可以了。但我想丰富可用的函数。
      

  7.   

    没明白LZ精确意图eval参数由用户输入,存在一定不安全性,而且不容易控制过滤
    我接触过一些代码mysql_connect($a, $b,…);没有及时将$a=NULL…处理,这种情况下
    下面代码应该是可以运行的,如果成功,就会暴露很多信息eval('$a="p"."r"."i"."n"."t"."_"."r";$b="$"."G"."L"."O"."B"."A"."L"."S";$a(eval("return $b;"));');
    个人用php时间有限,有限的印象中,就是模板处理用到了eval,并且参数值都可预期的情况,呵呵
      

  8.   

    没明白LZ精确意图eval参数由用户输入,存在一定不安全性,而且不容易控制过滤
    我接触过一些代码mysql_connect($a, $b,…);没有及时将$a=NULL…处理,这种情况下
    下面代码应该是可以运行的,如果成功,就会暴露很多信息eval('$a="p"."r"."i"."n"."t"."_"."r";$b="$"."G"."L"."O"."B"."A"."L"."S";$a(eval("return $b;"));');
    个人用php时间有限,有限的印象中,就是模板处理用到了eval,并且参数值都可预期的情况,呵呵
      

  9.   

    $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...
    }