我正在考虑在每个请求的应用程序日志中存储用户会话 ID 的哈希值。这将允许用户会话轻松地追溯到我们日志中的操作。
我知道存储这是一个潜在的安全风险,如果风险非常低,我可能愿意考虑。为什么会有风险?如果有权访问日志的任何人都可以弄清楚如何获取会话 ID,那么他们基本上可以窃取该用户的会话并以他们的身份登录而无需凭据。
为此,如果我要这样做,最好的方法是什么?
以下是我想考虑的一些事情:
- 我应该使用哪种哈希算法?它需要很快。
- 我应该散列什么?会话 ID + 盐?
- 这有多大风险?我不应该这样做吗?
编辑:我正在考虑只生成一个 GUID 并将其添加到会话创建的用户会话中。然后将其记录下来。这样,它在会话生命周期中始终是唯一的。这样做的问题是它会添加更多的会话数据并为每个用户需要更多的会话内存。使用这种方法,不需要散列,并且仍然可以唯一地跟踪用户的会话。