0

.Net Core 3.1 中的 SessionMiddleware 使用 IDataProtector 加密随机生成的会话密钥。

session-key 是对存储在缓存中的项目集合的引用,这些项目可通过 ISession 获得。

源代码在这里:

相关位在第 91 行和第 96 行之间。

有很多关于设置 IDataProtection 的文档,但为什么首先要加密会话密钥?cookie 旨在在客户端和服务器之间安全地传输。存储在缓存中的实际会话数据未加密。加密随机生成的密钥似乎是多余的,并且需要开发人员设置 IDataProtection 以获取看似很小的价值(如果您已经不需要它来做其他事情)。

4

1 回答 1

1

发现添加了 IDataProtection 的问题。

https://github.com/aspnet/Session/issues/105

加密的密钥比最初使用的 guid 长得多,我猜它更安全。

于 2020-03-04T09:18:20.740 回答