gpt4 book ai didi

java - JSP在 session 中存储密码

转载 作者:行者123 更新时间:2023-12-01 13:36:43 25 4
gpt4 key购买 nike

我知道这个问题已经被唤醒很多次了,但对我来说,这里有一些不清楚的时刻。

我将 JSP 与 Hibernate 一起使用,我想通过数据库的功能来实现用户的身份验证 - 创建用户... - 并使用相同的方法登录。因此,我的每个脚本都应该知道当前用户的登录名和密码,以及我知道使用以下 session 执行此操作的唯一方法:

SessionFactory sf = new Configuration()
.configure("/hibernate.cfg.xml")
.setProperty("hibernate.connection.username", session.getAttribute("username"))
.setProperty("hibernate.connection.password", session.getAttribute("password"))
.buildSessionFactory();

它看起来很脆弱吗?如果 session 在服务器端执行,为什么我应该避免在 session 中存储通行证?

最佳答案

是的。它显然很容易受到攻击。您不加密任何内容,因此任何嗅探您客户端 HTTP 请求的人都可以拦截她的用户名/密码。

http 身份验证机制的默认方法是创建 token , token 在一段时间后就会失效。该 token 将在安全 cookie 中加密。这样,用户的凭据仅通过网络传输一次,最好是通过安全的 https 连接。然后只有 token 会传播。

无论如何,你不必自己实现这样的机制,更准确地说你不应该自己实现这样的机制,除非你非常确定你正在做什么。

我强烈建议阅读 securing web applications 的基础知识。实现此类功能的最常见方法是使用 forms based authentication 。根据您的应用程序服务器,身份验证机制可能已经是 implemented 。检查例如 this post关于使用 glassfish 在 jdbc 领域上进行表单例份验证,或 this post使用 jboss 引用同一主题。

希望我有帮助!

关于java - JSP在 session 中存储密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216433/

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