为什么很多网站登录失败只提示「登录失败」或「帐号或密码错误」,而没有更详细说明到底是账号还是密码错误?

2017-08-03 19:24:15 +08:00
 tomato3

有的人说,是后台在判断用户登录的时候,是使用用户名+密码一起一步验证,如果把用户名和密码分开判断,告诉登录者是密码错误,会有安全隐患。

我觉得这只是一个托词而已,都在偷懒,正确的做法就是应该告诉用户到底是用户名错了,还是密码错了。

首先,用户名和密码这两个东西,站在攻击者的角度,如果你告诉我“账号或密码错误”,那么我就去忘记密码那里,通过忘记密码知道用户名是否正确,那么你返回给我“账号或者密码错误”我就知道是密码错误。

站在用户角度,如果忘记了用户名和密码,只是有点印象,那么网站提示“账号或者密码错误”,我根本不知道是账号错了还是密码错了,然后我还要去忘记密码那里去尝试几次账号,然后才能修改我的密码。如果一开始就提示我“账号不存在”,那么不可以不用跳转到忘记密码那里,多试几次,就能知道用户名输入正确,然后再尝试输入密码。

“账号或密码错误”究竟是拦截恶意攻击者呢?还是给用户制造麻烦呢? Google 或者 Outlook 登录的都是输入邮箱,就会验证邮箱,然后再输入密码。为啥大家都不学习呢?

9778 次点击
所在节点    问与答
36 条回复
crab
2017-08-03 19:37:22 +08:00
你这个例子在几个账号下是没区别。但在大数量,比如 1w 个账号,效率上还是有区别的。
terence4444
2017-08-03 19:40:13 +08:00
Google 和 outlook 先输入邮箱是为了重定向到相应的登录界面,有很多公司买了 office365 就可以用公司邮箱登录 onedrive。
FugueJoy
2017-08-03 19:42:20 +08:00
1. 有些产品在登录的时候是会提示『账号不存在』的
2. 现在基本都是邮箱或手机号登录,普通用户都只有一个,忘记账号的几率本身就不大
3. 这个体验的提升并不会对数据有提升,也就懒得优化了
nflush
2017-08-03 19:45:08 +08:00
登录用用户名,忘记密码申诉用邮箱和设置问题。
感觉没什么不对
binux
2017-08-03 19:46:12 +08:00
我实现的忘记密码不会告诉你用户名是否存在
nflush
2017-08-03 19:46:35 +08:00
@nflush 简单的说,可以在忘记密码部分尝试用户名是否存在本身就是有问题的。
xfspace
2017-08-03 20:31:08 +08:00
以前的网站提示很明了。
现在为了安全都不说是用户名还是密码错了
whatsmyip
2017-08-03 20:39:55 +08:00
安全问题。

不过我认为提示用户名是否存在是完全没问题的,因为注册这一步已经可以用于查询用户名是否存在。

不知道是否还有其他原因
millionart
2017-08-03 20:42:48 +08:00
这是一种安全策略,为暴力破解增加难度
单纯站在用户的角度考虑不如直接显示正确的账号密码吧?

这是安全和易用性的选择,而且在这个步骤,易用性越差安全性越强
geelaw
2017-08-03 20:51:35 +08:00
Google/Outlook 那个叫 federated sign-in ……

实际上提醒应该是“用户名不存在”或“用户名或密码错误”。
zado
2017-08-03 20:57:59 +08:00
如果账号不存在,可以提示;但如果是账号存在,网站就不可能 100%准确判断出你是账号错误还是密码错误,假如给了错误的提示,会给用户造成误导。
Yourshell
2017-08-03 21:15:16 +08:00
你想多了,普通用户都是 sb。
rogwan
2017-08-03 21:37:57 +08:00
如果提示账号不存在,会给部分人通过这个方式去探测这个 ID 是否可注册。通常这个都是在注册的是才会提供的检测(当然也有网站注册的时候都不提供检测,提交之后表单全清空,告诉你用户名已经存在,这样太搓了)
jarlyyn
2017-08-03 21:38:59 +08:00
这个是我被要求改掉的某个不安全功能之一。

可以试探帐号
lzhr
2017-08-03 21:39:30 +08:00
用户名存在吗
用户名存在,是你的帐号吗
是你的帐号 1 还是账号 2
KeepPro
2017-08-03 23:16:00 +08:00
系统怎么知道是用户名还是密码不对?系统只知道账户密码不匹配。
fayloue
2017-08-03 23:26:41 +08:00
如果用户 A 的账号是 12345,用户 B 的账号是 123456,用户 A 时间很长时间没有登录过记不清账号是多少,然后系统提示密码错误,但事实上是用户名错误。 系统跟本不知道这是谁在登录。
gefranks
2017-08-03 23:30:04 +08:00
安全问题 可以用来收割账号后对存在的账号进行攻击
boboliu
2017-08-03 23:40:06 +08:00
关于“那么我就去忘记密码那里,通过忘记密码知道用户名是否正确”,通常一个安全的忘记密码的返回应该是“如果账号存在,那么我们已经发送邮件到你的邮箱”
imn1
2017-08-04 00:09:16 +08:00
一个账户 aaa,另一个账户 aaa1,然后其中一个输入密码不匹配,能判断是“帐号错误”么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/380228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX