php cookie的常见问题
发布:liao | 发布时间: 2008年4月21日以前我们刚写PHP的时候,做后台,需要管理员身份认证。一般用COOKIE这么做的,特别是刚接触PHP的PHP爱好者:
admin/login.php
PHP代码:
if(用户名&&密码正确) {
setcookie('admin',1,time()+36400);
echo '登录成功';
}
PHP代码:
if($_COOKIE[admin] == 1) {
echo '有权限';
}
但是这样会造成很大的安全隐患,很多浏览器可以直接修改COOKIE,或者直接在系统里修改。
只要伪造cookie,那么管理权限就拿到了
为了安全,这么做:
PHP代码:
if(用户名&&密码正确) {
setcookie('userid',用户在系统中的ID,time()+36400);
setcookie('userpass',用户在系统中的32位md5密码,time()+36400);
echo '登录成功';
}
判断权限的时候这么做:
PHP代码:
if($_COOKIE[userid]) {
$query = mysql_query(select * user table where userid = '$_COOKIE[userid]' and userpass = '$_COOKIE[userpass]');
$row = mysql_fetch_array($query);
if($row[rank] <> 1) {
echo '没有权限';
}
}
这样伪造cookie就没有任何作用了
现在我一般都这么做,如果这个方法有什么不对的还请指出。
- 相关文章:
php用array建立数组 (2008-6-9 13:7:57)
PHP的语言层面的优化以及代码优化技巧 (2008-5-13 1:27:45)
使用同一窗体中用PHP来处理多个提交任务 (2008-5-13 1:26:8)
PHP常用正则表达式收集 (2008-4-20 1:42:32)
怎么样使用PHP实现静态发布 (2008-4-12 1:32:36)
怎么样利用PHP V5开发多任务应用程序 (2008-4-11 1:31:7)
PHP缓存技术的应用 (2008-4-10 1:29:31)
用PHP实现Jmai发送邮件 (2008-4-4 1:40:22)
用php生成随机字符串 (2008-4-3 1:35:41)
PHP生成带有雪花背景的验证码 (2008-3-25 9:46:38)
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





