我在新浪云平台建了一个网站http://hitaow.sinaapp.com嗨淘网,登陆验证是这样验证的,我一直觉得有漏洞,帮我看看先。下面是登陆规则:
if($action=="login"){

$adminuser = var_request("username","");
$adminpass = md5(var_request("password","")); if($adminuser==$manage_adminname && $adminpass == $manage_adminpass ){
SetCookie("COOKIEadminuser", $adminuser);   $_SESSION['adminuser'] = $adminuser;

redirect_to("main.php"); }else{
exit("<script language=\"JavaScript\">alert(\"用户名或密码错误,请重新输入!\");history.go(-1);</script>");
}
}为什么我在登陆页面输入账号1==1 or a不能绕过验证呢,输入什么才能绕过。

解决方案 »

  1.   

    你弄明白了  1==1 or a 之类的 绕过验证是为什么绕过验证的吗?
      

  2.   

    a' or '1'='1 你有对引号转义就不行了
      

  3.   

    "1==1 or 'a'"????????????????????
      

  4.   

    $adminuser = var_request("username","");
    $adminpass = md5(var_request("password",""));if($adminuser==$manage_adminname && $adminpass == $manage_adminpass ){
    SetCookie("COOKIEadminuser", $adminuser);   
    这里如果我在客户端自己构造一个cookie呢?
    1==1 or a 这样的只是SQL注入,但是看你的脚本,不存在查询,所以没什么用处。一般的我们验证用户名和密码 是这样的。。select * from sometable where username='$username' and pwd='$password'而$username=$_POST["username"];如果用户输入:1' or 1='1 就变成了select * from sometable where username='1' or 1='1' and pwd='$password'
      

  5.   

    现在PHP5都使用预处理的参数绑定,根本就不怕你注入了。