在ASP.Net Identity中声明Cookie安全性

时间:2014-03-09 15:57:24

标签: c# asp.net asp.net-mvc claims-based-identity owin

我通过网络阅读理解它的方式是声明存储为cookie,现在我将用户的角色添加到声明集合中,因此它将保存到声明Cookie中。现在这很好,因为每次我在我的ASP MVC控制器中检查授权属性时,它会省去数据库轮次跳转以检索用户角色。

  • 这样安全吗?
  • 如果被盗,可以解密cookie吗?
  • 是否有替代方法不在Cookie中保存声明并保存 服务器,这是有效的,还是我很担心?

2 个答案:

答案 0 :(得分:12)

Cookie几乎是维护网站身份验证会话的标准方法。除非您使用cookiless机制,它将会话作为查询字符串传输并且显示不太安全。无论您是否将声明存储在cookie中,您仍然依赖cookie安全机制来维护页面命中之间的客户端身份。该机制已存在多年,只要您遵循Microsoft的实施指南,就会被认为是安全的。

假设您使用的是带有WIF库的.NET 4.5或.NET 4.0,您可以在服务器上缓存声明,而不是在cookie中发送声明。这是一些基本的documentation。通常建议如果你有很多声明,并且cookie太大而无法在每个页面上进行。

答案 1 :(得分:7)

正如Oleg所写,标准cookie加密被认为是安全的。

此处的讨论< Server side claims caching with Owin Authentication>也可能很有趣。