使用純客戶端中的cookie就能完成會話保持,為什么需要服務端的session?session的運行機制會產生一個session_id的cookie給客戶端保存,然后客戶端下次請求的時候會帶著這個session標識符給服務器,服務器根據這個來找session。不使用session同樣可以實現會話保持,這一點是肯定的也許你會說安全性問題。但這就是我不解的。以下是我親測的:登錄某網站,然后復制該網站的cookie。在另一個瀏覽器中打開該網站(未登錄狀態)并填入復制好的cookie,刷新頁面,網站變成了登錄狀態。(我不是指所有網站,只是個別網站)只要盜取了cookie,就能劫持session。同樣的道理,如果單使用cookie,那么也是一樣只要盜取了cookie就能做到冒充登錄。既然盜取了cookie,無論是session還是cookie都一樣會被冒充,那為什么需要session呢?看到很多關于session和cookie的文章都是泛泛而談,有沒有真正理解了這個原理的人告訴我這個小白菜鳥真正的答案啊。
1 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
用session只需要在客戶端保存一個id,實際上大量數據都是保存在服務端。如果全部用cookie,數據量大的時候客戶端是沒有那么多空間的。
cookie只是實現session的其中一種方案。雖然是最常用的,但并不是唯一的方法。
全部在客戶端保存,服務端無法驗證,這樣偽造和仿冒會更加容易。(偽造一個隨機的id很難,但偽造另一個用戶名是很容易的)
全部保存在客戶端,那么一旦被劫持,全部信息都會泄露
客戶端數據量變大,網絡傳輸的數據量也會變大
- 1 回答
- 0 關注
- 1132 瀏覽
添加回答
舉報
0/150
提交
取消