dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>PHP>php教程>文章内容
cookie防止仿造安全总结
来源: 作者:
以前我们刚写PHP的时候,做后台,需要管理员身份认证。一般用COOKIE这么做的,特别是刚接触PHP的PHP爱好者:
admin/login.php
复制PHP内容到剪贴板
PHP代码:
if(用户名&&密码正确) {
     
setcookie('admin',1,time()+36400
);
     echo 
'登录成功'
;
}


复制PHP内容到剪贴板
PHP代码:
if($_COOKIE[admin] == 1) {
    echo 
'有权限'
;
}


但是这样会造成很大的安全隐患,很多浏览器可以直接修改COOKIE,或者直接在系统里修改。

只要伪造cookie,那么管理权限就拿到了

为了安全,这么做:
复制PHP内容到剪贴板
PHP代码:
if(用户名&&密码正确) {
     
setcookie('userid',用户在系统中的ID,time()+36400
);
     
setcookie('userpass',用户在系统中的32位md5密码,time()+36400
);
     echo 
'登录成功'
;
}


判断权限的时候这么做:
复制PHP内容到剪贴板
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正则问题   下一篇:对const使用的理解
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Windows2003+Apache+mod_perl安
·php正则问题
  相关文章
·php正则问题
·Windows2003+Apache+mod_perl安
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763