Tre*_*r D 2 security login credentials
登录网站或移动应用程序时,如果输入了错误的用户名/电子邮件或密码,您几乎总是只会收到“用户名或密码不正确”的通知。为什么这样做是普遍的做法,而不是具体告诉用户是用户名/电子邮件还是密码不正确?
我的猜测是它在某种程度上是安全驱动的,但如果是这样,通过模棱两可地告诉用户提供的凭据的某些部分不正确,在威胁保护中提供了多大的差异?
我遇到过很多这样的例子——尤其是在旧网站或访问频率较低的网站上——我不知道错误的部分是我的电子邮件、我的密码还是两者兼而有之。
hea*_*vyd 10
你的猜测是正确的。指定用户名不正确是Sensitive Data Exposure 的一种形式。仅使用登录表单,攻击者就可以确定特定电子邮件地址/用户名是否在网站上拥有帐户。
这已在 IT 安全堆栈交换站点上得到解决。
攻击者猜测有效的用户名-密码组合比仅仅猜测密码要困难得多。一旦帐户的存在被确认,它就可以成为目标(也许在 Facebook 等网站上进行一些外部研究)。
如果网站同时向数据库查询用户凭据的两部分(用户名和密码哈希),或者如果身份验证层不透明并且只返回是否用户是合法的。
一般来说,透露不必要的信息是不好的。一些攻击者可能想要获取(“枚举”)用户列表,可能是为了网络钓鱼。
此外,如果用户输入错误的用户名以生成不同的用户名,但获得了自己的密码(不是其他用户的密码),该怎么办?然后消息会说“密码错误”,即使错误实际上是在用户名中。