我用360的安全检测扫描网站的时候扫描出来一个高危漏洞。
list.php?pid=6";alert(42873);"
当我用ie进入该url的时候会提示虽然没有被执行,但是这样应该仍然会有潜在危险吧?应该怎么避免?

解决方案 »

  1.   

    对  $_GET['pid'] 进行过滤
      

  2.   


    foreach($_GET as $key1=>$val1){
    $_GET[$key1] = htmlentities($val1, ENT_QUOTES, 'utf-8');
    }$classid = $_GET['pid'];
    if(!is_numeric($classid)){
    header("Location:index.php");
    }
      

  3.   


    foreach($_GET as $key1=>$val1){
            $_GET[$key1] = htmlentities($val1, ENT_QUOTES, 'utf-8');
        }$classid = $_GET['pid'];
    if(!is_numeric($classid)){
            header("Location:index.php");
        }现在是这样做的。但是360的网站安全监察的时候仍然抛出一个高危。
    pic.php?pid=7'这样的话影响有多大?是360的这个网站检测不是特别准确还是我这样做的话仍然不合适
      

  4.   

    你对 $_GET 操作有何用?
    如果是威胁,依然通过 $_GET 进来了你要检查的是
      

  5.   

    360那种浏览器你都敢用。建议你用其他浏览器(FF,chrome,IE)进行测试。
      

  6.   

    http://webscan.360.cn/不是360浏览器,而是360的那个网站安全监察。唠叨大神说的相当的在理,但是get值的源正是用户自主输入的啊,这样的话怎么才能控制源呢?