Servlet:覆盖现有的cookie

3

我有两个servlet,一个用于用户注册,另一个用于已注册用户的登录。每个servlet都向用户发送一个cookie:

String username = request.getParameter(username);
Cookie user_cookie = new Cookie("userCookie", username);
user_cookie.setMaxAge(60 * 60); //1 hour durability cookie
response.addCookie(user_cookie);

(请求和响应是HttpServletRequest和HttpServletResponse类型)。注册后,用户将自动登录系统。现在,如果客户端登录系统(并收到一个cookie),然后同一客户端注销并注册新用户(然后接收另一个cookie,但根据代码显示,名称相同),user_cookie文件会被覆盖吗?

1
这是因为它将被设置为新的用户名。Cookie user_cookie = new Cookie("userCookie", username); 解释了这一点。 - JNL
2
存储和检查已登录用户的方法很奇怪。您是否清楚客户端可以操纵cookie?因此,客户端可以编辑cookie中的用户名以作为不同的用户登录。因此,这种方法完全不安全。只需使用会话即可。 - BalusC
1个回答

2

是的,它将被覆盖。

旧用户

String username = request.getParameter(OldUser);
Cookie user_cookie = new Cookie("userCookie", OldUser);
user_cookie.setMaxAge(60 * 60); //1 hour durability cookie
response.addCookie(user_cookie);

新用户

String username = request.getParameter(NewUser);
Cookie user_cookie = new Cookie("userCookie", NewUser);
user_cookie.setMaxAge(60 * 60); //1 hour durability cookie
response.addCookie(user_cookie);

注意:新用户名不等于旧用户名。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接