我想知道使用FormsAuthentication.SetAuthCookie()在cookie中仅存储UserId(数据库中的主键)并将其保存为持久cookie是否安全?
我见过很多人保存用户名的例子,但是这个(userId)可能是一个或两个数字的数字,我想这会让它更容易获得。 所以我的问题是我应该这样做吗?如果没有,如果我只是保存用户名,为什么会更好? (这又可能是一个简短的名字)
答案 0 :(得分:4)
不安全如果您存储未加密的值,然后从cookie中读取该值并使用它来验证用户在后续请求中的身份(使用用户名这样也会是不安全的)。
这是不安全的,因为改变cookie中的值是微不足道的,然后用户可以包含另一个用户的身份。
但是,如果您将用户ID存储在FormsAuthenticationTicket.UserData和encrypt the ticket中,则是安全的。
答案 1 :(得分:0)
我不认为人们可以只使用UserID(通过它的声音)或使用数据库中的主键来做很多事情