ASP.NET MVC使用URL中的敏感数据保护成员区域

Dan*_*nny 1 security asp.net-mvc

假设ASP.NET MVc应用程序具有受保护的成员区域.生成的某些URL包含敏感数据,例如Accounts/123,123是敏感数据,例如帐号.如果用户计算机后来遭到攻击,则攻击者无法访问Accounts/123,因为这会受到保护,但我们只是通过查看他们的浏览器历史记录获得了用户帐号.我可以看到避免这种情况的唯一方法是即使在受保护的区域也不要在URL中使用敏感数据.

我想的是scenerios,其中敏感数据是用于索引,细节和编辑的ID.解决方案可能是在表中添加另一个表示敏感数据的字段,这意味着如果被破坏则没有任何意义但可以在URL中使用.

或者还有另一种方式吗?

Tom*_*son 7

我会说不要在URL中使用敏感数据,并将帐号保存在用户会话中(如果假设有多个帐号,则只保留当前帐号).

编辑


看到你的编辑后:

如果你真的想要一个安全的方法,而没有客户通过页面的URL有任何想法,请考虑这个场景.

  • 用户有多个帐户
  • 帐户列在页面上
  • 帐户"ID"使用当前会话ID加密
  • 用户点击链接,然后将他带到链接/ Account/10912ljlkj2308s

现在,您的帐户ID不再可见,加密密钥仅适用于该会话和该ID.授予的会话ID可能并不总是唯一的,但这对历史/缓存中的"查看者"来说是一个巨大的威慑.