1. 问题说明

在测试 APP 登录时,查看登录返回的登录错误提示信息是否有「用户名不存在」或「密码错误」等,这些错误信息有利于攻击者获取注册用户的信息,从而通过该问题使用用户名字典遍历 APP 已注册用户。

2. 测试步骤

在登录界面,分别输入已注册和未注册的账号或者手机号,查看页面返回的信息如何,如果对这 2 种情况做出了不同的响应,那么此时就存在问题,攻击者可以通过判断不同的显示从而获取到已注册的用户并进行下一步的动作。而如果账号不存在或者账号与密码不匹配都只显示登录失败一类的信息,则攻击者不能分辨账号是否已经注册,也就不能进一步攻击了。下图是存在问题的一种情况。
登录界面设计 - 图1

3. 修复建议

建议用户名或密码输入错误均提示「用户名或密码错误」,或者在登录界面增加图形验证码等限制措施防止攻击者进行遍历获取已注册用户的账号。