網站用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

相關文章
相關標籤/搜索