cookie和session的區別

cookie用於交互時存放在客戶端,即使用你臨時文件夾中不存在cookie,但在你的瀏覽器進程中會臨時保存你的cookie!session是交互時存放在服務端,即使用不保存,也在服務進程中。

如果你對網頁有交互,服務器如何在衆多請求中能識別你那是曾經的哪一個?這依賴於你傳遞上來的cookie,即合沒有任何其他的的交互,在你瀏覽器進程中也必須保存諸如sessionID之類的cookie!但這個是臨時的,只是爲了識別你到底是誰而已。知道了你是誰,服務器還需要知道該怎麼做,那麼在服務器進程中必須存在一個sessionID,這個與你請求的相對應,然後根據這個才知道你是誰,該怎麼做。

sessionID是你初次請求時由系統生成,隨網頁流保存在你的瀏覽器進程中,以便你在使用postback等回傳功能時能識別你!要不然,你回傳了,另外一個請求卻得到你的回傳反應,這有點說不過去吧?

sessionid相當於瀏覽器與服務進程進行了一個簡單的約定,可以理解爲初次服務器發給你的一個通行號碼,以後你與服務器的任何交互都依賴於這個號碼!

而其他的需要長期保存的一些信息也在cookie中,如用戶名與密碼等等,與這個通信的結果是相同的。也就是說cookie與session同時存在,分別在客戶端與服務器!

如果你通過網絡嗅探或是其他方式,得到了某一個瀏覽器正在交互的sessionid以及一些進程中保存的session信息,這個信息在客戶端稱cookie,這服務器稱session。那麼你可以利用這些信息進行攻擊。

如,在某臺電腦中保存有某用戶的user與password通行信息時,你可以將自己的cookie違裝成目標的cookie,然後可以進行登陸,這種攻擊方式叫cookie攻擊!

如果他的這些信息保存在了瀏覽器進程中,也可以僞造,這種其實也是cookie攻擊,但由於其不確定性(你還必須拿到sessionid),這種稱爲session攻擊。其實說白了,這種方式在服務器中直接使用的session[“user"]之類的方式取得的,所以僞造時連同sessionid一塊僞造,所以才被稱爲session攻擊的。

由於多標籤瀏覽器的存在,還可以進行網頁交叉攻擊!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章