Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 我是否应该尽量减少通过帐户创建发现用户名的可能性?_Security_Login - Fatal编程技术网

Security 我是否应该尽量减少通过帐户创建发现用户名的可能性?

Security 我是否应该尽量减少通过帐户创建发现用户名的可能性?,security,login,Security,Login,因此,我的系统中有登录帐户 如果有人想创建一个新帐户,显然他们不能使用相同的登录名 因此,帐户创建表单/系统本身允许用户发现系统中已有的用户名(例如,如果您尝试创建用户名为“Admin”的帐户,它将允许或拒绝您,允许您知道是否存在用户名“Admin”类似地,如果您尝试创建一个帐户“john”,它将告诉您是否存在john帐户,您可以开始测试john的密码) 有没有办法将这种影响降到最低?或者我应该不担心这种发现策略,而有效地假设用户名是公共信息吗?标准是假设用户名是公共的 如果不是,我只能建议:

因此,我的系统中有登录帐户

如果有人想创建一个新帐户,显然他们不能使用相同的登录名

因此,帐户创建表单/系统本身允许用户发现系统中已有的用户名(例如,如果您尝试创建用户名为“Admin”的帐户,它将允许或拒绝您,允许您知道是否存在用户名“Admin”类似地,如果您尝试创建一个帐户“john”,它将告诉您是否存在john帐户,您可以开始测试john的密码)


有没有办法将这种影响降到最低?或者我应该不担心这种发现策略,而有效地假设用户名是公共信息吗?

标准是假设用户名是公共的

如果不是,我只能建议:

  • 分配用户名(例如,“您的用户名是
    5829103
    ”)
  • 强制所有名称具有服务器分配的后缀(例如,
    wolever1242
  • 随机拒绝用户名(即,使这种发现更加困难)
但是…所有这些都很糟糕


更好的问题是:当攻击者访问用户名时,会打开哪些攻击向量?一般来说,没有太多,可以通过其他策略(例如,限制每分钟每个用户名的登录尝试次数,或者确保电话代表使用用户名之外的一些秘密来验证呼叫者)。

标准是假设用户名是公开的

如果不是,我只能建议:

  • 分配用户名(例如,“您的用户名是
    5829103
    ”)
  • 强制所有名称具有服务器分配的后缀(例如,
    wolever1242
  • 随机拒绝用户名(即,使这种发现更加困难)
但是…所有这些都很糟糕


更好的问题是:当攻击者访问用户名时,会打开哪些攻击向量?一般来说,这种情况并不多,可以通过其他策略来缓解(例如,限制每分钟每个用户名的登录尝试次数,或者确保电话代表使用用户名之外的一些秘密对来电者进行身份验证)。

我认为对此没有多少办法。你需要向他们展示一些东西来验证用户名是否可用,所以这是不可避免的


即使它不起任何作用,但由于该帐户不是使用该用户名创建的,他们仍然可以推测该用户名不可用,尽管不太方便。

我认为对此没有什么可以做的。你需要向他们展示一些东西来验证用户名是否可用,所以这是不可避免的

即使它不起任何作用,但由于帐户不是使用该用户名创建的,他们仍然能够猜测用户名不可用,尽管不太方便。

有趣的问题。 通常,它是关于安全性和可用性的。 拥有验证码将阻止自动帐户发现。

有趣的问题。 通常,它是关于安全性和可用性的。
拥有验证码将阻止自动帐户发现。

讽刺的是,在这方面,我可以让登录比创建帐户更安全,因为我可以确保用户名和密码匹配,然后再确认是否有要匹配的帐户。换句话说,即使有管理员帐户,无论是否有管理员帐户,使用admin+错误密码登录都会显示相同的消息,这使得创建帐户允许这样的发现很烦人。@Tchalvak:你完全正确,这就是为什么我觉得这个问题很有趣的原因。我以前从未真正想到过这种弱点。在我看来,这是一个非常好的问题。讽刺的是,在这方面,我可以让登录比创建帐户更安全,因为我可以确保用户名和密码匹配,然后再确认是否有要匹配的帐户。换句话说,即使有管理员帐户,无论是否有管理员帐户,使用admin+错误密码登录都会显示相同的消息,这使得创建帐户允许这样的发现很烦人。@Tchalvak:你完全正确,这就是为什么我觉得这个问题很有趣的原因。我以前从未真正想到过这种弱点。在我看来,这是一个非常好的问题。好吧,我想说的是,打开的攻击向量是最重要的,因为你可以从知道登录的0%变成20-50%。我想问题是:如果帐户非常重要,用户名就不应该以任何形式或形式被发现,因此可以用作用户名的内容应该受到限制(例如,需要一个数字或最小长度限制)。因此,重要客户可以获得强大的用户名。用户名的最小长度确实比我建议的要短,但仍然不太好(例如,我知道如果必须选择另一个名称,ajr将不会太高兴)。如果你真的关心可用性,我会改为在“检查用户名”调用上设置一个速率限制。如果我一分钟只能检查10个用户名,那么列举所有四个字母的用户名需要很长时间。(事实上,我还收到了至少一份由一个两个字符用户名的家伙提交的针对我的错误报告…从那时起,我只需要一个字符的名称:P)对,但我想,在这一点上,最好的利率限制将是一个由ip,这只是意味着他们将需要起诉一个代理。我得考虑一下。这是真的……而限速只是一种方法。如果安全性很重要,您可以使用某种双因素身份验证,即银行样式的屏蔽密码