Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于Cookie检索相应的HttpSession_Http_Session_Servlets_Cookies_Encryption - Fatal编程技术网

如何基于Cookie检索相应的HttpSession

如何基于Cookie检索相应的HttpSession,http,session,servlets,cookies,encryption,Http,Session,Servlets,Cookies,Encryption,我想建立一种机制,使用Cookie对象跟踪每个用户http会话。因此,我将用户ID存储在Cookie中,然后在响应正文中与客户端通信(一旦登录过程成功),例如: Cookie loginCookie = new Cookie("userId", userId); httpServletResponse.addCookie(loginCookie); 我有三个问题,请回答: 1) 如何基于用户的Cookie检索给定的用户http会话?为此,是否需要存储JSESSIONID而不是userId 2)

我想建立一种机制,使用Cookie对象跟踪每个用户http会话。因此,我将用户ID存储在Cookie中,然后在响应正文中与客户端通信(一旦登录过程成功),例如:

Cookie loginCookie = new Cookie("userId", userId);
httpServletResponse.addCookie(loginCookie);
我有三个问题,请回答:

1) 如何基于用户的Cookie检索给定的用户http会话?为此,是否需要存储
JSESSIONID
而不是userId

2) 对用户cookie进行加密并不能防止cookie被窃听客户端和服务器之间通信的攻击者破坏。因此,攻击者可以重用cookie以实际用户的身份请求服务器,因为每次用户请求服务器时都会传输相同的cookie。我真的不知道加密cookie会有什么帮助。我是否也应该使用数字签名算法来验证发件人的身份

  • 您应该将会话ID存储在cookie中,将用户ID存储在服务器端会话中

  • 如果您使用的是https,那么Cookie重复使用不应该成为问题,因为https可以降低EAVSDROP的风险。如果您不使用https,则任何加密方式都无法帮助您


  • 谢谢你的及时回答。关于第一点,我应该如何在会话ID和用户ID之间建立链接?正如我所说,我的目标是检索与给定用户对应的会话。您知道会话ID属于特定浏览器中的特定用户,因为他拥有cookie。您可以通过检查会话状态中的用户ID来检查它是哪个用户。