你在PHP程序中使用cookie来实现用户登录吗?但使用cookie并不是你想象的那么安全,cookie可以伪造。当然,如果你的程序不要求那么多,可以不用考虑安全问题。但如果你正在构思一个在线构物或者其实的涉及浏览者利益的PHP程序时,你就得费心思考虑了。
我在会用session以前,就是用cookie来实现用户登录的,这里我把自己的思路写出来,希望对你有一些帮助。
如果我的cookie值是随机的,那么被伪造的可能就几乎不可能。当一个用户通过验证以后,我生成一个随机数,种值cookie。然后在服务器硬盘上生成一个以这个随机数为文件名的文件,并在这个文件中记录下访问者IP。
这样操作以后,以后的页面我们就可以通过cookie中的值定位服务器上特定文件,然后比较访问者的IP与登录时记录在文件中的IP。比较一致,就认为是合法用户了。
<?php
$ip=getenv("REMOTE_ADDR");
if(密码和用户名匹配){
$token=md5(uniqid(rand));
setcookie("uid",$token);
//打开名$token的文件,写入$ip;
header("location:index.php");
}
else{
//报告密码错;
}
?>
|