gpt4 book ai didi

java - 除了 invalidate() 之外,从 session 中删除用户凭据是多余的吗?

转载 作者:行者123 更新时间:2023-12-01 06:08:14 25 4
gpt4 key购买 nike

我正在查看一个遗留代码库(至少有十年历史),其特征相当于 JSP Model 2 架构(基本上是 Servlet 和 JSP 页面)。

我注意到如下代码:

session.removeAttribute("loginBean");
session.invalidate();

从 session 中删除用户凭据有什么好处吗?单独 invalidate 不就足够了吗? invalidate documentation这个主题似乎很清楚。

最佳答案

Is there any benefit in removing the user credentials from the session. Shouldn't invalidate alone be sufficient ?

是的,这样做有一个好处,并且最好的做法是删除 usercredentials 等敏感信息。使 HttpSession 无效之前的对象从安全角度解释如下:

当您调用invalidate时() 上 HttpSession对象时,J2EE 容器内部触发 HttpSessionListener sessionDestroyed(HttpSessionEvent se)方法。所以,如果你不这样做remove usercreadentials session 中的对象,您仍然可以在 sessionDestroyed 中检索它方法。

因此,重点是从 HttpSession/Cache/ 中删除敏感信息是最佳实践。等等..一旦我们知道不再需要数据,那么object (如 usercredentials )将不再可达,这将减少滥用的范围。

您可以查看指南 2-2,以下引用自Java 安全编码指南:

Some information, such as Social Security numbers (SSNs) and passwords, is highly sensitive. This information should not be kept for longer than necessary nor where it may be seen, even by administrators.

您可以查看here

关于java - 除了 invalidate() 之外,从 session 中删除用户凭据是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40444816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com