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

时间:2011-08-26 18:00:15

标签: security login username

所以我的系统中有登录帐户。

如果有人想要创建新帐户,显然他们无法使用相同的登录信息。

因此,帐户创建表单/系统本身允许用户发现系统中已存在的用户名(例如,如果您尝试使用用户名“Admin”创建帐户,则会允许或拒绝您,允许你知道是否有一个用户名“Admin”来尝试输入或不输入密码。同样,如果你试图创建一个帐户“john”,它会告诉你john帐户是否存在,你可以开始测试john的密码)

有没有办法减少这种影响?或者我应该不担心这种发现策略,并有效地假设用户名是公共信息?

3 个答案:

答案 0 :(得分:5)

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

如果不是,我唯一能提出的建议是:

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

但......所有这些都很糟糕。

更好的问题是:攻击者获取用户名时会打开哪些攻击媒介?一般来说,并不是很多,并且可以通过其他策略来缓解这些策略(例如,限制每分钟每用户名的登录尝试次数,或者确保电话代表使用除用户名之外的某些秘密来验证呼叫者)。 / p>

答案 1 :(得分:0)

我认为没有太多可以做的事情。你需要向他们展示一些东西,以验证用户名是否可用,所以这是不可避免的。

即使它没有做任何事情,由于该帐户不是使用该用户名创建的,因此他们仍然能够猜测用户名不可用,尽管不太方便。

答案 2 :(得分:0)

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