會話 假設(shè)我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?
假設(shè)我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?理論上,如果你得到一個cookie,你就可以模仿一個用戶。根據(jù)以下具體分析:此“身份密碼”由服務(wù)器生成
假設(shè)我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個用戶嗎?
理論上,如果你得到一個cookie,你就可以模仿一個用戶。根據(jù)以下具體分析:
此“身份密碼”由服務(wù)器生成并放置在客戶端瀏覽器的cookie中。服務(wù)器將有一個與之對應(yīng)的會話,會話ID也存儲在cookie中。
如上所述,服務(wù)器的會話ID存儲在客戶端的cookie中,以便其他用戶在cookie中獲得會話ID后,可以模擬原始用戶啟動請求。
這似乎不合理
!但是,這是cookies和會話的機制。我們說過當cookie被禁用后,session可能無法正常工作,但是我們可以通過get將sessionid傳遞給服務(wù)器,因此如果sessionid以明文形式傳輸,則存在安全風險。
由于cookie存儲在客戶機中并且不安全,因此當我們將用戶數(shù)據(jù)存儲在cookie中時,我們將對其進行加密。例如,它將驗證用戶的IP、終端身份等,即使其他用戶偽造Cookie,也無法驗證。
如何利用服務(wù)器下發(fā)的Cookie實現(xiàn)基于此Cookie的會話保持?
一般流程如下:當客戶發(fā)出第一個請求時,將客戶的HTTP請求(不帶cookie)發(fā)送到負載平衡設(shè)備,負載平衡設(shè)備根據(jù)負載平衡算法策略選擇后端服務(wù)器,并將請求發(fā)送到服務(wù)器。后端服務(wù)器執(zhí)行在HTTP應(yīng)答頭中設(shè)置cookie的動作,并將包含服務(wù)器端cookie的應(yīng)答包發(fā)送回負載均衡設(shè)備。負載均衡設(shè)備根據(jù)服務(wù)器回復(fù)的cookie值在其會話保持表中進行查詢,如果表中沒有相同cookie值的記錄,則將cookie值作為會話保持的“key”值,并將該會話添加到會話保持表中;服務(wù)器插入cookie值的HTTP回復(fù)返回給客戶端,當客戶端請求再次發(fā)生時,客戶端將最后一個服務(wù)器cookie的HTTP請求發(fā)送給負載均衡設(shè)備,然后負載均衡設(shè)備根據(jù)會話保持表中cookie值的會話保持記錄,向會話保持表中記錄的服務(wù)器發(fā)送HTTP請求(cookie同上),后端服務(wù)器回復(fù)請求。