【实战】关于登录安全,我所知道的事儿?

       作为测试,给我们一个关键词“登录”,我们可能想到的用例设计更多的是什么用户名、密码校验是否合法、是否为空、是否正确等等之类的场景,但在如今信息化的时代,“登录安全”已经是一个很热门且普遍的的话题了,今天给大家简单分享一下个人了解到的关于「登录安全」基础知识。

概念普及

在了解登录安全之前,给大家普及两个基础概念:“撞库”和“防撞库”;

百度到的原文介绍是:“撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。并且很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。”

换个角度大家可以这样理解,很多用户的账号和密码汇总在一起,形成了一个“库”,很多不法分子为了盗取到用户的账号信息,会绞尽脑汁通过各式各样的手段去不断的尝试获取用户的真实账号信息,这个“不断的尝试获取”的动作过程,我们可以称之为“撞”;有不法分子的“撞”,当然就有了正式使者的“防”,为了提高用户的账号信息安全,程序员(正义使者)在设计登录时会通过一系列的手段来一层一层的保护用户的账号信息安全。

常见的登录安全问题

这边给大家普及下常见的可判定为账号可能存在被盗取的场景:

  1. 同一个密码&不同账号,出现错误多次
  2. 同一个账号&不同密码,出现错误多次
  3. 频繁获取短信验证码

以上的场景存在两个共性,分别是“短时间范围内” and“同一个设备”,因为黑客或者其他不法分子,在不断尝试获取用户账号密码信息时基本是在同一个设备且短时间内高频的尝试不同的账号密码组合。

解决方案

基于上面的常见登录安全问题的共性(“短时间范围内” and“同一个设备”),有其对应的明确的解决方案:

  1. 通过ip限制同一个用户的短信的请求上限
  2. 通过ip限制同一个用户密码错误次数上限
  3. 通过账号限制同一个用户密码错误的上限

测试用例设计

作为一个专业的测试人员,在进行用例设计之前,除了关注ui设计稿、需求文档外,还可以关注开发提供的技术文档,在条件允许下能够进一步的了解到开发对应的基础实现原理,在一定程度上能够帮助我们提高自己设计的测试用例的覆盖度,以便于我们能够更全面、更深入的进行测试,从而提高我们产品的质量。

从开发的技术文档上我们不需要了解很深的技术原理,只需要了解以下三个问题:

  1. 通过什么控制登录风险?
  2. 用户的登录行为被判定为风险后,会有对应的什么措施?
  3. 用户的登录行为被判定为风险后,什么能恢复使用?
  4. 有没有可申诉的途径?

最后根据上面这个思路补充对应的功能测试用例即可,这边简单罗列部分测试用例:

标题

前置条件

步骤

期望结果

密码次数<x次后,输入正确密码可以成功登录

当前密码错误上限=x次

1.输入正确密码

1.登录成功

密码输入错误>=次后,账号被锁定无法登录

当前密码错误上限=x-1次

1.再次输入错误密码进行登录

2.输入正确密码

  1. 登录失败
  2. 由于账号被锁定,所以登录失败

成功登录后,自动清空当日错误次数

当前密码错误次数=x-1

  1. 输入正确密码进行登录
  2. 输入错误密码进行登录
  3. 输入正确密码进行登录

1登录成功

  1. 登录失败
  2. 登录成功

账号被锁定后,第二天可使用正确密码进行登录

密码错误次数到达上限,账号已被锁定

1.0点后使用正确密码进行登录

1.登录成功

账号被锁定后,可通过修改错误上限紧急恢复账号

密码错误次数到达上限,账号已被锁定

1.调整错误上限值x2>x

2.重新使用正确密码进行登录

1.调整成功

2.当前用户错误次数未到达新上限值x2>,所以可登录成功

另外,在补充业务测试用例的同时,同步可以关注对应的接口请求规范,为了尽可能获取到用户的真实ip,接口在设计时可能会引用http请求头规范,要求下游在请求时透传X_FORWARDED_FOR,以此来区分真实的用户ip。这个可以作为一个接口测试关注点,减少由于ip上报错误而引起风险误判,导致正常用户无法正常使用产品功能的情况。

从HTTP请求中获得用户的真实IP地址有两个方法,一个是从Remote Address中获得,另一个是从X-Forward-For中获得,但他们的安全性和使用场景各有不同,想要了解更多知识大家可以根据关键字去自行扩展~每天学习一点点,迟早能从菜鸟变大佬~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miss糖豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值