程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中cookie和session的用法比較

php中cookie和session的用法比較

編輯:關於PHP編程

       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這麼容易被功破,這麼不安全的話,我想現有的絕大部分網站都不安全了。

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