yoj*_*o87 5 asp.net security asp.net-mvc authorization forms-authentication
我在ASP.NET MVC网站中使用Forms身份验证,我在AuthCookie中存储用户帐户登录名,如下所示:
FormsAuthentication.SetAuthCookie(account.Login, false);
Run Code Online (Sandbox Code Playgroud)
我想问一下,如果有一种可能性,即用户在客户端会以某种方式管理AuthCookie改变自己的登录名,因此他将例如冒充有人用更高的权限和授权做更多的动作比他通常应该有.另外最好保存在此cookie用户帐户登录名或用户帐号ID中吗?
Cookie 已加密,因此出现这种情况的可能性很小。但仍然。
如果您想让安全性更加严格,您可以保存用户名以及用户 ID 或其他一些无法从用户名中猜出的数据。这些的组合使它更安全,因为如果你能猜出一个,就很难猜出其他的并使用它们的正确组合。IE。如果您猜测其他用户的电子邮件/用户名,则猜测同一用户的 ID 会有点困难,因为它们不相关。因此,组合的不相关属性越多,获得正确组合所需的步骤就越多。
您可以使用此场景中描述的替代方法:
LastLogonDate信息)在登录时存储是很常见的。这样,从长远来看,它会使其更安全,因为此信息会在每次登录时发生变化,如果用户手动注销,您始终可以从存储中清除该令牌,因此根本不可能注入其他人的身份。这确实使使用永久 cookie 变得更加复杂,但仍然可以做到。
这种方法并非万无一失,但它提供了额外的安全级别,可以在一个帐户遭到破坏时防止反复发生相同的攻击。而且,当一个帐户受到威胁时,并不意味着其他帐户也会受到威胁。如果您的安全令牌足够长,那么在您的网站上发起暴力攻击就会困难得多,并且虽然执行这种攻击,但安全令牌会发生变化,因此绝对更安全。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |