【问题标题】:User name not found or incorrect password error message too vague未找到用户名或密码错误错误信息太模糊
【发布时间】:2010-11-13 11:02:32
【问题描述】:

在许多应用程序中,当您输入错误的用户名或密码时,您会收到一个非特定错误,表明输入的用户名不存在或该用户名的密码不正确。

我(天真地)希望应用程序指定哪个发生了两个错误之一。有什么理由不区分它们吗?我想这会让攻击者更难猜出正确的用户名/密码组合,但是否有任何文献、研究或类似的资料支持这一假设?

【问题讨论】:

    标签: security authentication


    【解决方案1】:

    原因是安全性:它会根据失败的尝试阻止finding out which user names exist

    这应该与用户体验相平衡;如果您被告知任一您的用户名或密码不正确,则可能会被视为非常无用或烦人。

    【讨论】:

    • 但是很多时候可以通过创建新账号来获取存在哪些用户名的信息。
    【解决方案2】:

    常识表明,模棱两可的消息更好,因为攻击者无法知道他们是否猜到了正确的用户名。

    【讨论】:

      【解决方案3】:

      这是攻击者需要跳过的额外圈。如果他对应用程序进行冷攻击,他将不知道任何用户名或密码。为什么要给他一些额外的信息来告诉他他找到了用户名?最好隐瞒信息。

      如果攻击者只是想确认一个特定的用户名存在怎么办?比如说,政治家的名字作为恋物癖网站的用户名。用户名本身就是敏感信息,您不想确认哪些存在哪些不存在。

      【讨论】:

        【解决方案4】:

        是的,这正是许多应用程序/网站没有指定登录的哪一部分是错误的原因。我以前也有同样的抱怨,但后来我读了一堆计算机安全书籍,包括 19 Deadly Sins of Software Security。除了溢出和 SQL 注入之外,Michael Howard 确实解释了返回登录统一错误的原因。

        HTH

        【讨论】:

          【解决方案5】:

          这一切都是为了向攻击者提供尽可能少的信息。 一些网站在密码提醒方面走得更远。当您输入您的电子邮件地址以接收新密码或密码重置链接时,他们不会告诉您您的电子邮件地址是否已在数据库中注册,而是会给您这样的消息:“如果您输入的电子邮件地址在我们的数据库中您将收到一条消息...”这可以防止攻击者找出受害者使用的电子邮件地址,并且还可能会宣布受害者有人试图闯入她的帐户。

          【讨论】:

            猜你喜欢
            • 2022-01-15
            • 2015-11-27
            • 1970-01-01
            • 2022-10-14
            • 2012-07-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多