Cookie概念
在瀏覽某些 網站時,這些網站會把一些數據存在客戶端,用于使用網站等跟蹤用戶,實現用戶自定義功能.
是否設置過期時間:
如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了.
這個生命期為瀏覽會話期的cookie,就是會話Cookie;
存儲:
一般保存在內存,不在硬盤;
如果設置了過期時間, 瀏覽器會把cookie保存在硬盤上,關閉再打開瀏覽器, 這些cookie依然有效直到超過的設置過期時間;
存儲在硬盤上的Cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。
而對于保存 在內存的Cookie,不同的瀏覽器有不同的處理方式。
原理:
如果瀏覽器使用的是 cookie,那么所有的數據都保存在瀏覽器端,
比如你登錄以后,服務器設置了 cookie用戶名(username),那么,當你再次請求服務器的時候,瀏覽器會將username一塊發送給服務器,這些變量有一定的特殊標記。
服務器會解釋為 cookie變量。
所以只要不關閉瀏覽器,那么 cookie變量便一直是有效的,所以能夠保證長時間不掉線。
如果你能夠截獲某個用戶的 cookie變量,然后偽造一個數據包發送過去,那么服務器還是認為你是合法的。所以使用 cookie被攻擊的可能性比較大。
如果設置了的有效時間,那么它會將 cookie保存在客戶端的硬盤上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然后發送給服務器。
如果你在機器上面保存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然后放在他的瀏覽器的目錄下面,那么他登錄該網站的時候就是用你的的身份登錄的。
所以 cookie是可以偽造的。
當然,偽造的時候需要主意,直接copy cookie文件到 cookie目錄,瀏覽器是不認的,
他有一個index.dat文件,存儲了 cookie文件的建立時間,以及是否有修改,所以你必須先要有該網站的 cookie文件,并且要從保證時間上騙過瀏覽器,
曾經在學校的vbb論壇上面做過試驗,copy別人的 cookie登錄,冒用了別人的名義發帖子,完全沒有問題。
cookie 用法:
setcookie("user","zy",time()+3600); 設置user為zy,一小時之后失效; $_COOKIE['user']; 取回user值(名字) setcookie("user","",time()-3600); 刪除cookie,第二個參數為空,第三個時間設置為小于系統的當前時間即可.
新聞熱點
疑難解答
圖片精選