程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP入門知識 >> php編程中遇到的cookie的問題

php編程中遇到的cookie的問題

編輯:PHP入門知識

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

admin/login.php

PHP代碼:

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


PHP代碼:


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


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

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

為了安全,這麼做:

PHP代碼:


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


判斷權限的時候這麼做:

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

現在我一般都這麼做,如果這個方法有什麼不對的還請指出。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved