萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中cookie和session的用法比較

php中cookie和session的用法比較

   1、cookie數據存放在客戶的浏覽器上,session數據放在服務器上。

  2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。

  3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能, 考慮到減輕服務器性能方面,應當使用COOKIE。

  4、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。

  例,COOKIE

  如:setCookie('user','zhangsan',time()+3600),代表 user變量值為張三的cookie存活時間為1小時,在此要注意此函數屬於頭函數,也就相當於php中的header()跳轉函數,在它之前不能有“任何輸出(包括空格)”。

  2、用$_COOKIE['user']來獲取cookie值。www.111cn.net

  3、注銷cookie :setCookie('user','',time()-3600); 或 setCookie('user');

  4、

  //刪除客戶端在cookie中的sessionid

  if(isset($_COOKIE[session_name()])){

  setCookie(session_name(),'',time()-30,'/');

  }

  例,session

  1、//開啟session

  session_start();

  2、//清空session值

  $_SESSION = array();

  //徹底銷毀session

  session_destroy();

  session和cookie誰更安全

  就個人而言,我覺得session更安全一點,我以下幾點看法。

  1,如果session和cookie一樣安全的話,二者就沒有並要同時存在了,只要cookie就好了,讓客戶端來分提服務器的負擔,並且對於用戶來說又是透明的。何樂而不為呢。

  2,session的sessionID是放在cookie裡,要想功破session的話,第一要功破cookie。功破cookie後,你要得到 sessionID,sessionID是要有人登錄,或者啟動session_start才會有,你不知道什麼時候會有人登錄。第二,sessionID是加密的,第二次session_start的時候,前一次的sessionID就沒有用了,session過期時sessionid也會失效,想在短時間內功破加了密的 sessionID很難。session是針對某一次通信而言,會話結束session也就隨著消失了,而真正的cookie存在於客戶端硬盤上的一個文本文件,誰安全很顯然了。

  3,如果session這麼容易被功破,這麼不安全的話,我想現有的絕大部分網站都不安全了。

copyright © 萬盛學電腦網 all rights reserved