PHP AJAX登录,这种方法安全吗?

Phi*_*hil 4 php security ajax jquery login

我刚刚启动PHP和mySQL,需要知道这是否"安全".登录信息通过AJAX(jQuery)传递到以下PHP文件中.

jQuery AJAX

$("#login_form").submit(function(){
    $.post("login.php",{user:$('#username').val(),pass:$('#password').val()} ,function(data)
Run Code Online (Sandbox Code Playgroud)

PHP

ob_start();
mysql_connect("-", "-", "-") or die("ERROR. Could not connect to Database."); 
mysql_select_db("-")or die("ERROR. Could not select Database.");

//Get Username and Password, md5 the password then protect from injection.

$pass = md5($pass);
$user = stripslashes($user);
$pass = stripslashes($pass);
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);

//See if the Username exists.
$user_result=mysql_query("SELECT * FROM users WHERE username='$user'");
$user_count=mysql_num_rows($user_result);

if($user_count==1){
    if($pass_length==0){ echo "userVALID"; }
    else{       
        $pass_result=mysql_query("SELECT * FROM users WHERE username='$user' and password='$pass'");
        $pass_count=mysql_num_rows($pass_result);       
        if($pass_count==1){             
            session_register("user");
            session_register("pass"); 
            echo "passVALID";
        }
        else { echo "passERROR"; }      
    }
}
else { echo "userERROR"; }

ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

我知道这可能不是最好的做事方式,但这是我所知道的方式!我只是想知道它是否有任何重大的安全漏洞.这对我来说更像是一个概念,因此我没有加入SSL.

Art*_*cto 5

它患有

  • 通过未加密的连接发送密码(至少使用HTTPS发送用户名和密码;这可以保护密码免受被动攻击者的攻击,但不能防止活动攻击者使用.为了保护免受主动攻击者的攻击,您必须加密所有通信).
  • 将密码存储在数据库中(您应该存储盐渍哈希).


roo*_*ook 5

您应该进行此更改,以防人们的密码反斜杠:

if(get_magic_quotes_gpc()){
   $user = stripslashes($user);
   $pass = stripslashes($pass);
}
$user = mysql_real_escape_string($user);
$pass = sha256($salt.$pass);
Run Code Online (Sandbox Code Playgroud)

首先,md5非常糟糕.也md5()mysql_real_escape_string()是多余的.在野外产生了碰撞. sha1()尽管弱化仍然更安全,但尚未产生碰撞.最好的选择是php中的sha256,或使用mhash库.

$pass = md5($pass);
Run Code Online (Sandbox Code Playgroud)

您还需要加密密码.


归档时间:

查看次数:

9362 次

最近记录:

13 年,5 月 前