ASP MVC5(C#)安全地缓存敏感用户信息

时间:2015-04-27 08:24:42

标签: asp.net-mvc security session caching asp.net-mvc-5

我需要在帖子之间安全地存储敏感的用户数据。我已经阅读了关于会话和应用程序缓存的优缺点的大量帖子,但仍然没有明确的赢家。

以下是该方案: 用户输入敏感信息并将其发布到服务器。他被发送到只读确认屏幕并要求OTP(通过短信发送)。然后,数据再次发布到服务器。在第二篇文章中,我需要检查viewmodel信息是否未被篡改并验证OTP。

因此,视图模型信息需要缓存在第一篇文章中,并在第二篇文章中进行比较。此视图模型包含非常敏感信息,因此需要尽可能安全地存储。

我虽然使用会话来存储加密的用户数据存储对象,但我还是不完全相信那是最好的解决方案吗?

对此事的建议和指导将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果您最终要将此数据存储在数据库中,我假设您发现您的数据库足够安全,可以存储此数据。解决方案可能是将此数据存储在第一个POST的数据库中,并附带一些额外的属性,说明此数据是否已经过验证(我将其称为IsVerified)。用户验证OTP后,只需将此IsVerified属性设置为true即可。

与会话存储相比,此解决方案的优点是:

  1. 您不必担心会话过期。 (如果SMS被延迟,例如)
  2. 如果您要使用负载均衡器,您将无法使用粘性会话来存储数据,这意味着您将不得不使用更高级的会话管理。
  3. 用户不必两次提交此敏感数据,这意味着您不必重新验证ID。