1. 程式人生 > >cookies和session的區別

cookies和session的區別

cookie和session都是用來跟蹤瀏覽器使用者身份的會話方式。 cookie與session的區別是, cookie資料儲存在客戶端,session資料儲存在伺服器端。簡單的說,當你登入一個網站的時候,如果web伺服器端使用的是session,那麼所有的資料都儲存在伺服器上面,客戶端每次請求伺服器的時候會發送當前會話的sessionid,伺服器根據當前sessionid判斷相應的使用者資料標誌,以確定使用者是否登入,或具有某種許可權。由於資料是儲存在伺服器上面,所以你不能偽造,但是如果你能夠獲取某個登入使用者的sessionid,用特殊的瀏覽器偽造該使用者的請求也是能夠成功的。sessionid是伺服器和客戶端連結時候隨機分配的,一般來說是不會有重複,但如果有大量的併發請求,也不是沒有重複的可能性,我曾經就遇到過一次。登入某個網站,開始顯示的是自己的資訊,等一段時間超時了,一重新整理,居然顯示了別人的資訊。 如果瀏覽器使用的是 cookie,那麼所有的資料都儲存在瀏覽器端,比如你登入以後,伺服器設定了 cookie使用者名稱(username),那麼,當你再次請求伺服器的時候,瀏覽器會將username一塊傳送給伺服器,這些變數有一定的特殊標記。伺服器會解釋為 cookie變數。所以只要不關閉瀏覽器,那麼 cookie變數便一直是有效的,所以能夠保證長時間不掉線。如果你能夠截獲某個使用者的 cookie變數,然後偽造一個數據包傳送過去,那麼伺服器還是認為你是合法的。所以,使用 cookie被攻擊的可能性比較大。如果設定了的

有效時間,那麼它會將 cookie儲存在客戶端的硬碟上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然後傳送給伺服器。如果你在機器上面儲存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然後放在他的瀏覽器的目錄下面,那麼他登入該網站的時候就是用你的的身份登入的。所以 cookie是可以偽造的。當然,偽造的時候需要主意,直接copy cookie檔案到 cookie目錄,瀏覽器是不認的,他有一個index.dat檔案,儲存了 cookie檔案的建立時間,以及是否有修改,所以你必須先要有該網站的 cookie檔案,並且要從保證時間上騙過瀏覽器,曾經在學校的vbb論壇上面做過試驗,copy別人的 cookie登入,冒用了別人的名義發帖子,完全沒有問題。 更有效的方法就是自己定義一個瀏覽器,我們稱之為黑客瀏覽器,比如我們可以自己改造firefox瀏覽器,可以自定義sessionid,自定義 cookie值,那樣就可以隨心所欲了。網路安全又將面臨嚴峻的挑戰。

兩個都可以用來存私密的東西,同樣也都有有效期的說法。 區別在於。 session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設定進去。 1、cookie資料存放在客戶的瀏覽器上, session資料放在伺服器上 2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙 考慮到安全應當使用session 3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能 考慮到減輕伺服器效能方面,應當使用COOKIE 4、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。 5、300個的限制我沒聽說 6、所以個人建議: 將登陸資訊等重要資訊存放為SESSION 其他資訊如果需要保留,可以放在COOKIE中