我这个通过pangolin扫描,连数据库的内容,都能被扫描到,请问这个怎么解决?、
能扫描,什么问题都没有。多谢

解决方案 »

  1.   

     addslashes和mysql_escape_string方法都是可以的
      

  2.   

    http://www.xxxxxx.com/bb_shownews.php?id=104回楼上各位,也就是在Pangolin 输入这么一个地址,就能检测到上面的。望能多分享点怎么解决给我啊多谢。 
      

  3.   

    http://www.xxxxxx.com/bb_shownews.php?id=104回楼上各位,也就是在Pangolin 输入这么一个地址,就能检测到上面的。望能多分享点怎么解决给我啊多谢。 
      

  4.   

    那你就去看 bb_shownews.php文件 对 id 的过滤
      

  5.   


    回复你,我过滤了已经。现在的问题是,
    pangolin 能扫描 以下这几个MySQL内置函数 名称,具体的后面内容是扫描不到了。
    但我测试人家公司的网站,是连这个这几个MySQL内置函数都扫描不到的。VERSION 
    DATABASE
    USER
    SYSTEM_USER
    CURRENT_USER
    BASE DIR
    DATA DIR
    TEMP DIR
    OS 
    ACOUNTS
     MySQL内置函数 以上这几个,如何扫描不到啊55555
    不晓得怎么改啊,什么去掉单分号啊,什么的都改过了,!is_numeric也用了。
      

  6.   

    bb_shownews.php的代码对id的处理部分可以贴出来看看。
      

  7.   


    <?php 
    include('inc/site.php');
    include('inc/db_class.php');
    include('inc/function.php');if($_GET['act']=="")
    {
    $nid=$_GET["id"];
    if (inject_check($nid)) 
     {
     die ( 'oh,error' );
          } //注入判断
    else if (!is_numeric($nid)) 
     {  
     die("The id must be numeric!"); 
     }$teachedit=$db->query("select * from {$tablehead}_news where id=$nid");//mysql_query("set names 'iso-885a9-5'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
    $show=$db->getarray($teachedit);
    $keywords=$show[keywords];
    $hits=$show[hits]+1;
    $db->update("update {$tablehead}_news set hits=$hits where id=$nid");
    ?>
      

  8.   

    推荐你在 $nid两边加上单引号。
    $teachedit=$db->query("select * from {$tablehead}_news where id=‘$nid’");is_numeric函数不安全。
      

  9.   

    id 直接intval下
    $nid = intval($_GET["id"]);