在ASP.NET中使用SetAuthCookie()仅存储userId是否安全

时间:2010-11-29 17:55:06

标签: c# security asp.net-mvc-2 encryption cookies

我想知道使用FormsAuthentication.SetAuthCookie()在cookie中仅存储UserId(数据库中的主键)并将其保存为持久cookie是否安全?

我见过很多人保存用户名的例子,但是这个(userId)可能是一个或两个数字的数字,我想这会让它更容易获得。 所以我的问题是我应该这样做吗?如果没有,如果我只是保存用户名,为什么会更好? (这又可能是一个简短的名字)

2 个答案:

答案 0 :(得分:4)

不安全如果您存储未加密的值,然后从cookie中读取该值并使用它来验证用户在后续请求中的身份(使用用户名这样也会是不安全的)。

这是不安全的,因为改变cookie中的值是微不足道的,然后用户可以包含另一个用户的身份。

但是,如果您将用户ID存储在FormsAuthenticationTicket.UserDataencrypt the ticket中,则是安全的。

答案 1 :(得分:0)

我不认为人们可以只使用UserID(通过它的声音)或使用数据库中的主键来做很多事情