1

我正在开发一个供内部使用的 Web 应用程序,该应用程序由对另一个远程服务器的许多 Web 服务请求驱动。内部站点维护自己的会话,通过用户名/密码凭据进行身份验证,这些凭据本身由 Web 服务支持(即我们进行远程身份验证调用以验证对内部站点的登录)。Web 服务请求还需要使用这些相同的凭据进行身份验证。

我们希望这些 Web 服务请求可以保持无状态,这意味着在每个身份验证请求中都传递凭据。问题是以安全的方式记住要使用的凭据(在初始登录期间输入的凭据)。我不知道有任何真正安全的方法来存储密码以供以后重复使用 - 散列它会牺牲我们再次使用它的能力。我们能做的最好的事情就是在会话范围内对其进行编码,并希望没有恶意开发人员会尝试在线程转储或其他东西中捕获它。

我缺少更好的解决方案吗?我是否对将编码密码存储在内存中的风险过于偏执,或者我们对这个项目的方法是否存在缺陷?

4

2 回答 2

0

最终我们的结论是不,在服务器上存储可以以任何方式重用的用户凭据是不安全的,因此我们不能对每个 Web 服务请求进行真正的无状态重新身份验证。我们只需要妥协并保留在用户初始登录期间启动和存储的有状态连接。

于 2012-08-08T15:33:46.083 回答
0

我建议使用基于令牌的身份验证,将令牌传递给用户以进行廉价的用户验证。一种实现方式是生成一个 cookie,该 cookie 传递给用户以进行会话管理。

我没用过,但你应该看看oauth可能是例子

于 2012-07-20T12:52:13.060 回答