加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Forms身份验证的授权安全性

发布时间:2020-12-16 07:08:42 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC网站中使用Forms身份验证,我在AuthCookie中存储用户帐户登录名,如下所示: FormsAuthentication.SetAuthCookie(account.Login,false); 我想问一下,客户端的用户是否有可能以某种方式设法在AuthCookie中更改他的登录名,因此他将被模仿为具有更
我在ASP.NET MVC网站中使用Forms身份验证,我在AuthCookie中存储用户帐户登录名,如下所示:

FormsAuthentication.SetAuthCookie(account.Login,false);

我想问一下,客户端的用户是否有可能以某种方式设法在AuthCookie中更改他的登录名,因此他将被模仿为具有更高权限的人,并被授权执行比他通常应该具有的更多操作.另外最好保存在此cookie用户帐户登录名或用户帐号ID中吗?

解决方法

Cookie是加密的,因此很有可能.但仍然.

不止一种房产方式

如果您想让您的安全性更加严格,您可以保存用户名以及用户ID或其他一些无法从用户名中猜到的数据.这些组合使它更安全,因为如果你猜一个人更难猜测其他人并使用它们的正确组合. IE浏览器.如果您猜测其他用户的电子邮件/用户名,则猜测相同用户的ID会更难,因为它们不相关.因此,您组合的无关属性越多,获得正确组合所需的步骤就越多.

登录安全令牌方法

您可以使用此方案中描述的替代方法:

>用户登录.
>生成一个随机安全登录令牌,该令牌可以是随机长度,并定义了一些最小长度,并将其保存在数据存储中的用户.这可能不是问题,而其他数据存储在登录中也很常见,就像LastLogonDate信息一样.
>使用此令牌并将其保存在cookie中,而不是用户名或其他信息.
>如果用户注销,请从数据存储中清除登录安全令牌
>用户再次登录…返回1并再次创建新令牌并在此会话中使用它.

这样,从长远来看,它会使它更安全,因为这些信息会在每次登录时发生变化,如果用户手动注销,您可以随时从商店中清除该令牌,因此根本不可能注入其他人的身份.这确实使得使用永久性cookie变得更加复杂,但它仍然可以完成.

这种方法不是防弹,但它提供了额外的安全级别,可以在一个帐户遭到入侵时一次又一次地防止同一次攻击.而且,当一个帐户被泄露时,并不意味着其他帐户也可以.如果您的安全令牌足够长,那么在您的站点上启动暴力攻击会更加困难,并且在执行此类攻击时,安全令牌将会发生变化,因此它肯定更安全.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读