關于session說法正確的是 假設我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?
假設我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?大家都知道,Cookie是會話保持技術方案的一種,從理論上說拿到了Cookie是可以冒充用戶的。下面具
假設我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?
大家都知道,Cookie是會話保持技術方案的一種,從理論上說拿到了Cookie是可以冒充用戶的。下面具體分析下:
Cookie的機制原理
我們知道HTTP協(xié)議本身就是無狀態(tài)的,服務器端默認情況下是無法分辨用戶的,這樣顯然是不合理的,所以我們需要給每個訪客加上一個“標識口令”。當分配了標識口令給客戶端后,客戶端瀏覽器后續(xù)發(fā)起的請求都會把這個“標識口令”附帶在請求頭參數(shù)里,這樣服務器端就能分辨哪些請求是同一個用戶了。
這個“標識口令”由服務器端生成,放置在客戶端瀏覽器Cookie中,而服務器端對應會有一個Session,這個Session的唯一標識(SessionID)也是存儲在Cookie中。
篡改Cookie可以冒用請求
上面講到了,服務器端的SessionID是存儲在客戶端Cookie中的,這樣一來其它用戶一旦拿到Cookie中的SessionID后,是可以冒充原始用戶發(fā)起請求的。
這看上去是不合理的!
但是,Cookie和Session的機制如此。我們說Cookie禁用后Session可能不能正常使用,但是我們可以將SessionID以GET方式傳遞給服務器端,所以SessionID如果明文傳輸就存在安全隱患。
拿到了淘寶的Cookie是無法冒充用戶的
正因為Cookie是存儲在客戶端且不安全的,所以我們將用戶數(shù)據(jù)存儲在Cookie中時都會對數(shù)據(jù)進行加密。比如會驗證用戶的IP、終端特征標識等。即使其他用戶偽造了Cookie依舊是無法驗證通過的。