当前位置:  开发笔记 > 程序员 > 正文

为什么ValidateUser不返回更多?

如何解决《为什么ValidateUser不返回更多?》经验,为你挑选了1个好方法。

我正在使用标准的.NET成员资格提供程序,并且我认为我会看到是否有人可以对它发表意见.

调用ValidateUser返回true或false.现在,由于该方法接受用户名和密码,因此可以推断返回结果将反映无效的用户名或密码.然而,如果我们进一步研究它,我们发现它也在检查IsLockedOut和IsApproved.

public override bool ValidateUser (string username, string password)
{
    MembershipUser user = GetUser (username, false);
    /* if the user is locked out, return false immediately */
    if (user.IsLockedOut)
        return false;
    /* if the user is not yet approved, return false */
    if (!user.IsApproved)
        return false;
    ......

在我的应用程序中,我想以自己的方式使用IsApproved.简单地滚动我自己的提供者是行不通的,因为我仍然受限于bool结果.创建用户可以获得我们需要的所有信息,那么为什么不使用ValidateUser?我错过了什么吗?



1> Bevan..:

我希望您所看到的是安全决策 - 通过限制返回的信息,他们不会向恶意方提供信息.

想象一下,你是Cyril Cracker,试图闯入一个网站.

场景#1:您尝试使用密码"密码"输入用户名"Admin",系统会告诉您禁止使用.您拥有的唯一信息是管理员/密码不是有效组合.

场景#2:您尝试使用密码"密码"输入用户名"Admin",系统会告诉您没有该名称的用户.你可以不断尝试不同的用户名,直到你找到一个称为.

场景#3:您尝试使用密码"密码"输入用户名"Admin",系统会告诉您密码无效.突然间,您知道"Admin"是有效用户.你已经学到了一些有用的东西,你需要一直猜测的是密码.

场景#4:您尝试使用密码"密码"输入用户名"Admin",系统会告诉您该帐户已被阻止.现在,您知道有效的用户名和密码,并且该帐户已被阻止.您可以稍后再回来再试一次.

将豆类溢出到什么是有效的系统,什么不是,被称为聊天系统,并且它们被认为是不安全的,因为它们更容易破解.

希望这是有帮助的.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有