我想建立一种机制来使用Cookie对象跟踪每个用户的http会话。因此,我将用户ID存储在Cookie中,然后我将与响应正文中的客户端进行通信(一旦登录过程成功),例如:
Cookie loginCookie = new Cookie("userId", userId);
httpServletResponse.addCookie(loginCookie);
我有三个问题:
1)如何根据他的Cookie检索给定的用户http会话?我是否应该为此目的存储JSESSIONID
而不是userId?
2)加密用户cookie不会阻止某些攻击者窃听客户端和服务器之间的通信而损害cookie。因此,攻击者可以重复使用cookie来请求服务器作为实际用户,因为每次用户请求服务器时都会传送相同的cookie。我真的没有看到加密cookie的位置可以提供帮助。我也应该使用数字签名算法来验证发件人吗?
答案 0 :(得分:0)
您应该将会话ID存储在cookie中,将用户ID存储在服务器端会话中。
如果您使用https,Cookie重用不应该是一个问题,这可以降低微弱的风险。如果您不使用https,则无法通过任何加密方式为您提供帮助。