标签:
1、验证码。验证码一般就是服务器产生一个随机数,保存在session中,最后与用户的输入验证。因为验证码是图形显示的,所以必须用户手工输入,避免机器自动识别,防止密码暴力破解。 2、在线验证。通过用户的session值,(储存在COOKIE中,如果用户不使用COOKIE,则使用地址栏GET方式向服务器提交),比较用户是否合法、超时。 3、上面两个场合是通行的做法。但是还有一种做法,是当前比较先进的。那就是对于用户的密码加密传送。 用户的密码,如果以http方式传输,一般都是明文传送的,这样的密码,容易被嗅探器捕获。 如果使用session,情况就好多了。在服务器端取随机数,随机数在服务器端保存在session值中,并将随机数通过html页面js程序的方式发送到客户端。用户端只要将随机数和密码的MD5结果发送出去,服务端从session中取出随机数和数据库数据计算出结果,两个结果进行比较。其中第三种应该是最安全的,当然也可以把方法结合起来一起用,这里我只是将密码做了一次MD5存放到数据库了
<?php function getLink(){ $link = mysql_connect('127.0.0.1', 'root', '') or die(' 连接数据路失败,请检查后重试!'); if (!$link) { echo "连接失败1"; return '0'; }else{ return $link; } } function getResoures($DBName, $sql){ try{ $db_select = mysql_select_db($DBName); if (!$db_select) { echo "连接失败2"; //return '0'; } $resoures = mysql_query($sql); return $resoures; }catch(Exception $e){ echo 'Caught exception: ', $e->getMessage(), "\n"; //return '1'.$e->getMessage(); } } function closeConnect($link){ if (null != $link) { mysql_close($link); } } ?>
<?php /* 0 admin登入成功 * 1 admin密码错误 * 2 admin管理员不存在 * * 3 user登入成功 * 4 user密码错误 * 5 user用户名不存在 */ require("MySqlUtils.php"); header("Content-type:text/html;charset=utf-8"); $username = $_POST["username"]; $password = $_POST["password"]; $password = md5($password); $isAdmin = $_POST['isAdmin']; if ($isAdmin){ $r = adminLogin($username, $password); }else{ $r = userLogin($username, $password); } selectNext($r); function selectNext($r){ if(!$r){ echo "<Script>alert('登入成功');</Script>"; }else if ($r == 1) { echo "<Script>alert('密码错误,请重新登入');</Script>"; echo "<Script>window.location.href='login.php'</Script>"; }else if ($r == 2){ echo "<Script>alert('不存在该管理员,请重新登入');</Script>"; echo "<Script>window.location.href='login.php'</Script>"; }else if ($r == 3){ echo "<Script>alert('登入成功');</Script>"; }else if ($r == 4){ echo "<Script>alert('密码错误,请重新登入');</Script>"; }else { echo "<Script>alert('不存在该用户,请重新登入');</Script>"; } } function adminLogin($username, $password){ $link = getLink(); $resoures = getResoures('libray', 'select * from admin;'); $info = mysql_fetch_array($resoures); while($info){ $u = $info['AdminID']; $p = $info['Password_MD5']; if ($username == $u) { if ($password == $p) { return 0; }else{ return 1; } } $info = mysql_fetch_array($resoures); } closeConnect($link); return 2; } function userLogin($username, $password){ $link = getLink(); $resoures = getResoures('libray', 'select * from card;'); $info = mysql_fetch_array($resoures); while($info){ $u = $info['CardID']; $p = $info['Password']; if ($username == $u) { if ($password == $p) { return 3; }else{ return 4; } } $info = mysql_fetch_array($resoures); } closeConnect($link); return 5; } ?>
标签:
原文地址:http://blog.csdn.net/u013224148/article/details/46400969