1. 问题说明
测试移动客户端时需要查看 APP 是否对登录尝试次数进行了限制,如果没有登录错误次数进行限制的话,那么攻击者就可通过爆破的方法攻击用户的账户。
2. 测试步骤
2.1 密码尝试
测试的方法很简单,在登录界面对用户的密码进行错误尝试,看 APP 是否有错误次数的限制,如下图所示,该 APP 只有 3 次密码尝试的机会,那么就说明该 APP 是有账户锁定策略的。
并且在尝试 3 次错误密码后账户确实被锁定,如果 APP 只是有显示次数限制,但服务端并未做相应的限制,那么存在问题的。
2.2 特殊情况
如果 APP 没有错误次数限制,但是存在不能被破解的验证码等限制措施,这样的话也是没有问题的。
但如果没有任何的其他限制措施且没有账户锁定策略,那么就可以尝试爆破,该 APP 在此项测试中就是存在问题的。
3. 修复建议
建议在服务端编写账户锁定策略的逻辑,当一段时间或一天内多次输入错误密码时根据 IP 或者账号进行账号锁定以防止攻击者通过暴力猜解密码。