java servlet 使用 cookie 记住我的选项

标签 java servlets cookies remember-me

我需要在不使用任何高级框架的情况下使用 cookie 在 java servlet 中实现一个简单的记住我选项。

首先,在登录时,我创建了 cookie 并将其发送给浏览器(客户端)。要存储在 cookie 中的值只是用户名 + 密码的简单哈希值。

我应该如何管理来自浏览器的传入请求,发送 cookie? 我的方法是在注册用户之间检查是否有任何用户的用户名 + 密码哈希值等于 cookie 中的值? 这种做法是否正确?

另外,我不明白过期日期的确切机制是什么。 cookie过期浏览器会删除吗,不会,如何判断cookie是否过期?

最佳答案

只要您不使用 HTTPS,您建议的方法就非常不安全。我建议生成某种 session token (例如使用 java.util.UUID.randomUUID())并将其设置为 cookie 并将其存储在服务器端的某个位置,以便您稍后可以识别用户在 cookie 中与此 session ID 相关联。

如果您认为发生了一些欺诈行为并且用户名/密码与您使用的 cookie id 之间没有直接关系,这使您有机会重置某个 session cookie。但请注意:此方法仍然容易受到中间人攻击。

关于过期:是的,cookie 会失效,如果过期可能会被浏览器删除。但是您可以将 cookie 设置为 3000 年的某个值,这样它就永远存在。

关于java servlet 使用 cookie 记住我的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806991/

相关文章:

java - 从字符串中删除日期后从文件名中提取字符串

java - 从java套接字读取行终止符不一致的行

java - MainActivity 中的 Android Map Fragment 不调用 onMapReady

java - SpringMVC : how to get the value of @RequestMapping in the function

php - 验证 session 和 mysql 时间

Java Servlet 过滤器在 Ruby [on Rails] 和 PHP 中等效吗?

java - 使用 HtmlUnit 登录 Gmail

java - 无法启动 Apache TomEE 服务器 - 未找到部署 : openejb/Deployer

php - 如何使用 vuex 和 cookies 而不是使用 localStorage 使 vue.js 登录/注册

javascript - 在 Drupal 7 上单击按钮并保存 cookie