0

我发现 ASP.net httpcontext 缓存对象可以通过减少在特定场景中引用数据库的次数来帮助提高 Web 应用程序的性能。我决定将成功登录后生成的用户对象放入 httpcontext 缓存对象并将其保存在那里,以减少处理每个页面/请求时后续引用 DB 的数量。我不在该对象中保留密码或盐值,但我在用户对象中保留帐户到期日期等内容。我检查了以下链接

.NET 中缓存数据的安全性

看看这些解决方案是否适用于我的场景,但我无法推断那里的谈话可以应用于这种场景(将这些相对敏感的信息保存在缓存对象中)。

您能否说明这种缓存对象的使用是否足够安全以保存帐户到期日期或帐户活动标志等内容?如果没有,您对在没有后续数据库调用的情况下手头有用户对象有什么建议。

PS:由于每个应用程序池回收中发生的问题,我不想将该对象保留在会话对象中。

4

1 回答 1

1

正如链接的帖子所暗示的那样,它仅与您的应用程序、服务器基础架构和您编写代码的方式一样安全。缓存在应用程序范围内保存信息,这意味着如果您编写代码的方式存在安全漏洞,则在用户之间公开用户特定信息的风险更高。

顺便说一句 - 如果您因为应用程序池回收而遇到 Session 问题,那么使用缓存将无济于事。当应用程序池以与会话相同的方式回收时,缓存将被清除(如果会话配置为InProc)。实际上,如果您已将 Session 配置为InProc,那么无论如何这些值实际上都存储在 Cache 中!

于 2012-09-10T12:52:06.600 回答