會(huì)話 什么是session,有哪些實(shí)現(xiàn)session的機(jī)制?
什么是session,有哪些實(shí)現(xiàn)session的機(jī)制?session的背景是HTTP本身是無狀態(tài)的,也就是說,每個(gè)請求都是相互獨(dú)立的。服務(wù)器如何知道這兩個(gè)交互對應(yīng)于一個(gè)訪問者?會(huì)議就是要解決這個(gè)問題。
什么是session,有哪些實(shí)現(xiàn)session的機(jī)制?
session的背景是HTTP本身是無狀態(tài)的,也就是說,每個(gè)請求都是相互獨(dú)立的。服務(wù)器如何知道這兩個(gè)交互對應(yīng)于一個(gè)訪問者?會(huì)議就是要解決這個(gè)問題。會(huì)話是在服務(wù)器端生成的,但必須與瀏覽器cookie一起使用。在服務(wù)器端識(shí)別用戶的過程如下:
1。用戶通過瀏覽器訪問服務(wù)器
2。服務(wù)器端創(chuàng)建一個(gè)session對象,通過set cookie將session ID返回給瀏覽器,并通知瀏覽器保存cookie
3。當(dāng)瀏覽器向服務(wù)器發(fā)出后續(xù)請求時(shí),它將把會(huì)話ID帶到cookie中
5。服務(wù)器根據(jù)會(huì)話ID查找之前創(chuàng)建的會(huì)話對象,以標(biāo)識(shí)訪問用戶(用戶信息通常存儲(chǔ)在會(huì)話對象中)
6。當(dāng)用戶關(guān)閉瀏覽器時(shí),瀏覽器將清除cookie中的會(huì)話ID
如果您有任何問題,請與我們聯(lián)系。
假設(shè)我拿到了別的用戶的淘寶網(wǎng)站的cookie,我放到自己的http請求里,我就可以冒充這個(gè)用戶嗎?
理論上,如果你得到一個(gè)cookie,你就可以模擬一個(gè)用戶。根據(jù)以下具體分析:
此“身份密碼”由服務(wù)器生成并放置在客戶端瀏覽器的cookie中。服務(wù)器將有一個(gè)與之對應(yīng)的會(huì)話,會(huì)話ID也存儲(chǔ)在cookie中。
如上所述,服務(wù)器的會(huì)話ID存儲(chǔ)在客戶端的cookie中,以便其他用戶在cookie中獲得會(huì)話ID后,可以模擬原始用戶啟動(dòng)請求。
這似乎不合理
!但是,這是cookies和會(huì)話的機(jī)制。我們說過當(dāng)cookie被禁用后,session可能無法正常工作,但是我們可以通過get將sessionid傳遞給服務(wù)器,因此如果sessionid以明文形式傳輸,則存在安全風(fēng)險(xiǎn)。
由于cookie存儲(chǔ)在客戶機(jī)中并且不安全,因此當(dāng)我們將用戶數(shù)據(jù)存儲(chǔ)在cookie中時(shí),我們將對其進(jìn)行加密。例如,它將驗(yàn)證用戶的IP、終端身份等,即使其他用戶偽造Cookie,也無法驗(yàn)證。
可以通過js獲取session的值嗎?
但是我們可以通過其他方式讓JS獲得session的價(jià)值。
通過這種方式,會(huì)話值是通過JS偽裝獲得的。