网站用Cookie验证的安全方法

 

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

有程序:

$destoon_auth = get_cookie('auth'); //获取cookie auth
if($destoon_auth) {
    $_dauth = explode(" ", 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'] 是用户的浏览器信息。

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


有着三个方面的保护,可以使:每个网站cookie不一样,每个用户cookie不一样。

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

这个 随机密钥加密cookie 的思路可以借鉴到其他脚本web开发中。

原文地址:https://www.cnblogs.com/be-down-to-earth/p/3391144.html