2017-02-13 15 views
-1

我想建立一個機制來跟蹤每個用戶使用Cookie對象的http會話。因此,我存儲在cookie中,我將在響應正文,然後傳送給客戶端(一旦登錄過程是成功的)的用戶ID,例如:如何檢索基於cookie的相應HttpSession

Cookie loginCookie = new Cookie("userId", userId); 
httpServletResponse.addCookie(loginCookie); 

我有一個有三個問題,請:

1)如何根據他的Cookie檢索給定的用戶http會話?爲此我應該存儲JSESSIONID而不是userId嗎?

2)加密用戶cookie不會阻止cookie被某些攻擊者竊聽客戶端與服務器之間的通信所破壞。因此,攻擊者可以重新使用cookie來請求服務器成爲實際用戶,因爲每次用戶請求服務器時都會傳遞相同的cookie。我真的不知道在哪裏加密cookie可以提供幫助。我也可以使用數字簽名算法來驗證發件人嗎?

回答

0
  1. 您應該將會話ID存儲在cookie中,並將用戶ID存儲在服務器端會話中。

  2. 如果您使用的是https,那麼cookie重用不應該成爲問題,這會降低eavsdropping的風險。如果您沒有使用https,則任何加密方式都不會對您有所幫助。

+0

謝謝您的及時答覆。關於第一點,我該如何在會話ID和用戶ID之間建立鏈接呢?我所說的目標就是檢索與給定用戶相對應的會話。 –

+0

您知道會話ID屬於特定用戶,因爲他擁有cookie。您可以通過檢查會話狀態中的用戶ID來檢查它是哪個用戶。 –