在 HttpSession 中存储 jwt 令牌安全吗?如果不是,存储 jwt 令牌的最佳实践是什么。以便在客户端中进一步使用。
public void setLoggedinUserInSession(HttpServletRequest httpServletRequest, String jwtToken){
HttpSession session = httpServletRequest.getSession(true);
session.setAttribute("token", jwtToken);
}
关于您的问题 - 如何在客户端上存储 JWT 令牌。 Cookie 是其中一种方法。有很多大大小小的事情需要照顾,但它们都被 OWASP ASVS 总结了:https://github.com/OWASP/ASVS/blob/v4.0.3/4.0/en/0x12-V3-Session-管理.md
一件重要的事情:HTTP Session 不是正确的选择。看看如何处理 cookie https://www.baeldung.com/java-servlet-cookies-session#1-create-a-cookie 并执行此操作。
不要存储 JWT Access Token HttpSession,也不要存储在非 HttpOnly cookie 中,甚至不建议使用 HttpOnly cookie。 到目前为止,我发现的唯一安全的选择是本地存储,但您必须使用 CSP、清理输入等来保护它。
看这里:https://medium.com/@serg290696/jwt-authentication-but-this-time-secure-fe0a52deb0aa