c# - 身份验证 Cookie

标签 c# asp.net asp.net-mvc authentication

我正在为我的 web 应用程序编写一个数据库身份验证系统,它是用 ASP.NET MVC 编写的。当有人授权时,它应该将他的用户名保存在 cookies 中。仅使用 HttpResponse.Cookies 保存其值为用户名的 cookie 是否安全?不是可以伪造的吗?

只保存用户名...这是正确且安全的方法吗?或者我应该保存整个 User 对象(如果这真的可能的话)?

谢谢你,对不起我的英语。

最佳答案

不,保存用户名非常不安全,因为它很容易被伪造。以下是我的指导方针:

  1. 使用 token
  2. 散列存储在数据库中的 token 。
  3. 使 cookie HttpOnly

token 可以由 CSPRNG 生成,以确保无法伪造自动登录 cookie。

对数据库中的 token 进行哈希处理可防止在数据库遭到破坏的情况下窃取用户帐户。 (请记住,此时的 token 相当于密码。)

HTTP-Only cookie 可防止可能窃取 cookie 的 XSS 攻击。

关于c# - 身份验证 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668248/

相关文章:

asp.net-mvc - 在 MVC Web 应用程序中跨存储库共享 DbContext

c# - 将 DataGrid 绑定(bind)到 ObservableCollection<Dictionary>

C#:解决继承类与其基类之间的无效转换异常

c# - ValidationSummary 不显示错误

c# - MVC 应用程序过期应用程序 Cookie

asp.net-mvc - IIS7 中的自定义基本身份验证失败

c# - 在 C# 中将基实例转换为派生类(向下转换)

c# - MongoDB 在连接字符串中指定数据库

asp.net - VS2012在重命名标记文件时错误地重命名了代码隐藏

javascript - Gridview 模板 Javascript 数据绑定(bind)