ASP.net httpcontext缓存对象是否足够安全,可以存储(相对)敏感信息?

时间:2012-09-10 11:57:44

标签: asp.net caching state-management httpcontext.cache

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

Security of cached data in .NET

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

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

P.S:我不希望将该对象保留在会话对象中,因为每个应用程序池回收中都会出现问题。

1 个答案:

答案 0 :(得分:1)

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

只是旁白 - 如果你因为应用程序池回收而遇到Session问题,那么使用Cache将无济于事。当应用程序池以与Session相同的方式循环时,缓存将被清除(如果会话配置为InProc)。实际上,如果您将Session配置为InProc,那么这些值实际上仍存储在Cache中!