已知登陆判断的代码就是这个,但是帐号密码不知,server已经对提交输入的单双引号进行了转义请问有没有什么办法绕过饶过去?
if($_POST){
if($_POST['user'] && $_POST['passwd']){
if($_POST['user'] =='xxxx' && $_POST['passwd'] =='xxxx'){
$_SESSION['regiser']="Y";
exit;
}else{
echo "登陆失败";
exit;
}
}
}

解决方案 »

  1.   

    即使不转义单双引号,也没什么漏洞可言,因为你的代码里没有看到执行sql语句。
      

  2.   

    谁说必须要sql才有漏洞,只要让上面条件为真就可以了
      

  3.   

    转义单双引号,就是为了程序构造更加安全的sql语句。
    从你的代码看,基本没有什么漏洞.
    单单这句
    if($_POST['user'] =='xxxx' && $_POST['passwd'] =='xxxx')
    你不知道xxxx是什么如何绕得过去呢?
      

  4.   

    <?php
    error_reporting(0); //重点...隐藏错误信息
    if(isset($_POST['user'], $_POST['passwd'])){
    if('xxxx' == $_POST['user'] && 'xxxx' == $_POST['passwd']){
    $_SESSION['regiser'] = 'Y';
    exit;
    }else{
    die('登陆失败');
    }
    }
    ?>