gpt4 book ai didi

java - 在后端和其他服务之间保存用户登录的安全方法

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

我的 Java 应用服务器即将与 RESTful Web 服务集成,并将轮询其内容 (JSON) 以显示给我的用户。

我的用户使用他们的用户名/密码登录,然后我必须对其进行散列 + salt,然后在每次调用时转发到 Web 服务。 Web 服务获取散列/加盐的登录信息并对其进行身份验证(同样,每次调用)。

假设我无法更改 Web 服务端的任何内容,并且 Web 服务需要哈希/加盐登录凭据作为输入参数(以及 API 端点、HTTP 正文等) ,我可以在客户端采取哪些安全措施来保证用户提供的用户名/密码的安全。

我能做的最糟糕的事情就是把它们留在内存中。我还有哪些其他选择?

最佳答案

主要问题是“您想要针对什么进行保护”。您的用户已经知道他们的用户名和密码,因此您可以认为将它们保留在客户端基本上是安全的(至少,您不需要保护这些凭据以防止用户受到攻击)。加盐 + 散列密码可用作 Web 服务的凭据,因此它们与用户名/密码具有相同的值。您的用户已经将其密码发送到您的服务器,因此隐式地,它已经信任您的服务器。

结论:在这种情况下,将哈希值直接保存在内存中是相当安全的。

为了限制风险,您可能不应该将此哈希值存储在永久存储中(数据库、磁盘上的文件...)。

如果您想确保您的应用程序保持无状态,那么将此哈希值存储在客户端本身(在 cookie 中)并不是一个坏主意。我们可能会认为这在一定程度上降低了安全性,因为它也向客户端攻击开放了哈希。

这里真正的问题是什么?

真正的问题是客户端需要信任您的服务器,因此您需要承担确保保持信任的责任。这就是像 OpenId 这样的解决方案很有趣的原因:它们限制了对第三方的信任。

关于java - 在后端和其他服务之间保存用户登录的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856092/

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