在服务器上缓存用户的散列凭据是一种不好的做法吗

Is it a bad practice to cache user's hashed credentials on the server

我有一个应用程序,我经常在应用程序中读取用户对象。我打算缓存也有他的散列凭据(散列)的用户对象。客户端只能访问端口 HTTPS 端口 443。在什么情况下 attacker/another 进程可能会访问我的缓存。

这是一种不好的做法吗 - 为什么或在什么情况下。

这取决于您缓存它的位置。

如果您将它缓存在 memcached 中,网络上的任何进程都可以访问它(根本没有身份验证),那么是的,这是一个问题。

如果您将它缓存在机器的内存中(共享内存 blob 等),那没问题(因为 OS 控件会保护内存段免受其他用户的影响)。

如果您使用诸如 Redis 之类的东西在启用身份验证的情况下对其进行缓存,那么就没问题。

简而言之,如果您的缓存已通过身份验证,那就去吧。如果它不是(并且对网络上的任意用户开放阅读)那么绝对不要。