sessionid怎么取得 能通過sessionId來獲取session里的值嗎?
能通過sessionId來獲取session里的值嗎?代碼如下: HttpSession sesion = Request.getSesion() if(session!=null){ //如果ses
能通過sessionId來獲取session里的值嗎?
代碼如下: HttpSession sesion = Request.getSesion() if(session!=null){ //如果sessionID不等于空,則說明是第二次訪問 //寫第二次訪問時的代碼 }else{ //寫第一次訪問的代碼 } java web怎么通過sessionid得到session這個我們不需要了解,就是第二次客戶端發(fā)出請求時,將sessionid也發(fā)給了服務器,服務器根據(jù)這個唯一的ID找到相應的session(session都是保存在服務器的數(shù)據(jù)庫中,每個session用唯一一個ID所標識),就像是數(shù)據(jù)庫中根據(jù)關鍵字查找數(shù)據(jù)一樣,找到之后就可以直接用這個session里面的數(shù)據(jù)了。
假設我拿到了別的用戶的淘寶網(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依舊是無法驗證通過的。
在一個java類如何通過session獲取已經(jīng)登錄的用戶名?
你好:
關于session獲取登錄名:
HttpSession session = ServletActionContext.getRequest().getSession()
String userId = session.getAttribute("userId")
//然后利用這個userId去查找數(shù)據(jù)庫
//加入session的方法
getHttpServletRequest().setAttribute(key, value)
久可以獲取你需要對應的KEY值了