我正在为我的 web 应用程序编写一个数据库身份验证系统,它是用 ASP.NET MVC 编写的。当有人授权时,它应该将他的用户名保存在 cookies 中。仅使用 HttpResponse.Cookies 保存其值为用户名的 cookie 是否安全?不是可以伪造的吗?
只保存用户名...这是正确且安全的方法吗?或者我应该保存整个 User 对象(如果这真的可能的话)?
谢谢你,对不起我的英语。
最佳答案
不,保存用户名非常不安全,因为它很容易被伪造。以下是我的指导方针:
- 使用 token 。
- 散列存储在数据库中的 token 。
- 使 cookie HttpOnly。
token 可以由 CSPRNG 生成,以确保无法伪造自动登录 cookie。
对数据库中的 token 进行哈希处理可防止在数据库遭到破坏的情况下窃取用户帐户。 (请记住,此时的 token 相当于密码。)
HTTP-Only cookie 可防止可能窃取 cookie 的 XSS 攻击。
关于c# - 身份验证 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668248/