【发布时间】:2013-08-14 06:29:54
【问题描述】:
我有两个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文件,将被覆盖或不是吗?
【问题讨论】:
-
它将是,因为它将被设置为一个新的用户名。 Cookie user_cookie = new Cookie("userCookie", username);解释它。
-
存储和检查登录用户的方法多么奇怪。您是否清楚客户端可以操作 cookie?因此客户端可以只编辑 cookie 中的用户名,以便以不同的用户身份登录?因此这整个方法是完全不安全的?只需利用会话。