【问题标题】:Is it safe to store only userId using SetAuthCookie() in ASP.NET在 ASP.NET 中使用 SetAuthCookie() 仅存储 userId 是否安全
【发布时间】:2011-05-17 10:22:57
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我认为人们仅使用 UserID(从它的声音)或使用数据库中的主键无法做很多事情

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这个答案并不完全准确。 FormsAuth 令牌的整个 内容都经过加密和签名,包括用户名/用户 ID,因此无法篡改。将用户 ID 而不是用户名作为参数传递给 SetAuthCookie 不会从根本上改变安全属性,无论是正面的还是负面的。
      • 你是对的;我快速阅读了这个问题,并错过了使用 SetAuthCookie 的具体参考。
      猜你喜欢
      • 1970-01-01
      • 2012-10-09
      • 2019-01-24
      • 2021-12-05
      • 2015-06-22
      • 2011-06-01
      • 2011-01-01
      • 2010-12-28
      • 2010-12-10
      相关资源
      最近更新 更多