萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> cookie防止仿造安全講解

cookie防止仿造安全講解

以前我們剛寫PHP的時候,做後台,需要管理員身份認證。一般用COOKIE這麼做的,特別是剛接觸PHP的PHP愛好者:
admin/login.php

if(用戶名&&密碼正確) {
     setcookie('admin',1,time()+36400
);
     echo '登錄成功'
;
}


if($_COOKIE[admin] == 1) {
    echo '有權限'
;
}


但是這樣會造成很大的安全隱患,很多浏覽器可以直接修改COOKIE,或者直接在系統裡修改。

只要偽造cookie,那麼管理權限就拿到了

為了安全,這麼做:

if(用戶名&&密碼正確) {
     setcookie('userid',用戶在系統中的ID,time()+36400
);
     setcookie('userpass',用戶在系統中的32位md5密碼,time()+36400
);
     echo '登錄成功'
;
}


判斷權限的時候這麼做:

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就沒有任何作用了

copyright © 萬盛學電腦網 all rights reserved