mysql被一句<?php eval($_POST[..]);?>木马入侵,请问如何防?

解决方案 »

  1.   

    eval($_POST[..]); 应该会报错的呀
      

  2.   

    估计ini中没有打开安全转义的开关,只能自己对post过来的数据先做转义咯
    首先把"<"转义,后面基本就认为是字符串了写程序时先要看看phpinfo服务器的环境设置
      

  3.   

    如果是入侵者放上去的删除呗,找出被入侵的原因
    如果是你的系统需要这样,那么验证一下,比如: if ($_POST['pass']=='123'){
         eval($_POST['some code']);
     }
      

  4.   

    看htmlspecialchars能帮助你吗?难道你想转义内容吗?
      

  5.   

    过滤不严,看下<?php eval($_POST[..]);?>在你的那个字段 然后找到写入该字段的php页面,把要写入数据库的内容先过滤 转义 下
      

  6.   

    /* 过滤_GET_POST_COOKIE_SESSION_FILES过来变量------------------------------------------------------------- */ 
    foreach ($_GET as $get_key=>$get_var) 

    if (is_numeric($get_var)) { 
    $get[strtolower($get_key)] = get_int($get_var); 
    }else{ 
    $get[strtolower($get_key)] = get_str($get_var); 


    /* 过滤所有POST过来的变量 */ 
    foreach ($_POST as $post_key=>$post_var) 

    if (is_numeric($post_var)) { 
    $post[strtolower($post_key)] = get_int($post_var); 
    } else { 
    $post[strtolower($post_key)] = get_str($post_var); 


    foreach ($_POST as $post_key=>$post_var) 

    if (is_numeric($post_var)) { 
    $post[strtolower($post_key)] = get_int($post_var); 
    } else { 
    $post[strtolower($post_key)] = get_str($post_var); 


    /* 过滤函数 */ 
    //整型过滤函数 
    function get_int($number) 

    return intval($number); 

    //字符串型过滤函数 
    function get_str($string) 

    if (!get_magic_quotes_gpc()) { 
    return addslashes($string); 

    return $string; 
    }

      

  7.   

    禁用
    php.inidisable_functions = phpinfo,eval
      

  8.   

    禁止掉eval
      

  9.   

    防sql注入,在数据入库时,可以使用mysql_escape_string.在页面输入数据的时候,使用htmlspecialchars
      

  10.   

    数据库是 插入了 php一句话木马是 执行不了的。
    是你的站 被别人 拿到了webshell 然后 修改了代码或者是某些上传漏洞