我的网站被入侵了,联系到那个入侵者提供漏洞信息时,他只说了:         一句话过滤不完整,导致可以利用PHP一句话木马连接。这句话是什么意思?不懂。我想弄明白接着去填补漏洞。在某个页面还有这样的字符   <%eval request("pass")%>  。这句是ASP的吧,怎么没有解析出来?
我这个网站是PHP的。

解决方案 »

  1.   

    你网站的表单处理url处理是不是过滤了非法字符和字符串,是否在表单提交的时候做了防注入控制!
      

  2.   

    /* 过滤_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; 
    }
      

  3.   

    还有 ,所有insert update select  数据部分都用'{$var}' 而不用 .$var.形式
      

  4.   

    把eval  屏蔽,是输入域都过滤关键字或者转义替换
      

  5.   

    谢谢大家的回答,过了这么久忘了结贴。对于字符过滤,在PHP.ini里有个设置,magic_quotes_gpc 、magic_quotes_runtime   将这两个设置好。具体请Google。
    当然如果是用空间的话,先用magic_quotes_gpc()或magic_quotes_runtime函数检查服务商以上函数的设置,以免斜杠前再被添加斜杠,导致出错。