网站用Cookie验证的安全方法

 

 

 

cookie验证有他本身的方便优越之处,不能彻底摒弃(例如:若是用户量大,优点就是不占服务器资源,持久验证)。某日看程序时发现一比较安全的验证方法,共享之。web

有程序:sql

$destoon_auth = get_cookie('auth'); //获取cookie auth
if($destoon_auth) {
    $_dauth = explode("\t", decrypt($destoon_auth, md5(DT_KEY.$_SERVER['HTTP_USER_AGENT'])) ); //解密cookie
    $_userid = isset($_dauth[0]) ? intval($_dauth[0]) : 0;   //获取解密后的明文cookie
    $_username = isset($_dauth[1]) ? trim($_dauth[1]) : '';
    $_groupid = isset($_dauth[2]) ? intval($_dauth[2]) : 3;
}浏览器

DT_KEY是安装时随机码(每次安装都不同,这是最主要的)。安全

decrypt和encrypt是自写的加密函数。服务器

$_SERVER['HTTP_USER_AGENT'] 是用户的浏览器信息。cookie

不管如何:md5(DT_KEY.$_SERVER['HTTP_USER_AGENT']))   这个别人是没法伪造出来的,用它当密钥解密。函数


有着三个方面的保护,能够使:每一个网站cookie不同,每一个用户cookie不同。网站

这样获取用户名用cookie+sql验证,别人是利用不了的。加密

这个 随机密钥加密cookie 的思路能够借鉴到其余脚本web开发中。md5

相关文章
相关标签/搜索