安全测试基础业务用例整理
通用业务
描述 | 验证方法 | 安全等级 |
---|
用户名SQL注入 | 输入框输入’or ‘a’='a,输入密码点击登录 | S0 |
密码SQL注入 | 密码输入框输入’or ‘a’='a,点击登录 | S0 |
用户名大小写不区分 | 使用大小写的用户登录 | S3 |
密码大小写不区分 | 使用大小写的密码登录 | S3 |
设置基本的复杂度规则,如密码最短长度(建议8位及以上),大小写字母+数字+符号的组合等 | 使用弱密码页面校验不通过 | S2 |
对默认密码要求强制改密 | 对第一次登录的用户提示修改密码 | S2 |
周期性密码更新提示 | 定时提示用户修改密码 | S3 |
登录功能
描述 | 验证方法 | 安全等级 |
---|
用户名输入错误提示用户名不正确 | 输入不存在的用户名,提示用户名或密码不正确 | S3 |
密码输错没有限制次数 | 登录密码错误次数无限制,暴力破解 | S2 |
缺少验证码 | 登录不需要输入验证码 | S2 |
非正常状态的用户能登录 | fiddler截获登录信息,修改后提交 | S2 |
登录成功传输的密码是明文 | fiddler截获登录信息,查看密码参数 | S2 |
登录成功看到别人的数据 | fiddler截获登录信息,修改后提交 | S2 |
登录成功能访问和操作没有权限的功能 | fiddler截获登录信息,参数修改后提交 | S0 |
登录一直在线不会过期 | 登录token过期后操作提示认证过期需要重新登录 | S3 |
登录过期后还能操作需要认证的功能 | 登录token过期后操作提示认证过期需要重新登录 | S1 |
用户在别的地方登录原来登录未过期 | 用户在别的地方登录,原来登录操作提示重新登录 | S1 |
用户登录的token复制到别的机器上的浏览器中登录成功 | 用户户登录的token复制到别的机器上的浏览器中登录 | S3 |
登录后拷贝链接至另一浏览器不需要登录能访问 | 登录后拷贝链接至另一浏览器不需要登录能访问 | S1 |
登录未用ssl加密 | 用fillder截获登录信息是否加密处理 | S2 |
chrome同TAB页面A和B,A页面退出后B页面能正常操作 | A页面退出登录,B页面不能进行业务操作 | S3 |
注册功能
描述 | 验证方法 | 安全等级 |
---|
手机验证码无失效时间 | 获取的手机验证码等待超时后验证是否可使用 | S2 |
手机验证码无发送时间间隔控制 | 点击发送验证码后没有倒计时 | S2 |
发送的手机验证码和手机号码不匹配能注册 | 用A手机获取的验证码能被B用 | S2 |
手机验证码无发送次数控制 | 同一手机可以一直发送验证码 | S2 |
手机验证码输错后没有失效 | 验证码错误后还能继续用,暴力破解 | S2 |
用户名、手机号等后台未校验 | 用fiddler截获修改后提交 | S1 |
密码允许输入弱密码 | 允许输入纯数字或英文 | 前端S1 后端S0 |
验证码功能
描述 | 验证方法 | 安全等级 |
---|
短信轰炸防范,添加判断条件,如对注册手机号进行限时冻结等 | 控制同一手机号发送验证码的次数 | S2 |
短信校验码长度应避免4位,最好是6位或以上,可提高被暴破的风险度 | 验证码的长度是否够长 | S2 |
必须设置验证码失效时间,例如2-5分钟 | 保持验证码后2-5分钟后是否还有效 | S3 |
检查验证码是否使用的是图形数字、文字或图案 | 检查验证码是否使用的是图形数字、文字或图案 | S3 |
验证码不能通过Http协议返回记录在Response中,以免被拦截获取 | 用fiddler截获信息能否直接看到验证码 | S2 |
检查验证码使用后是否仍有效 | 使用过一次验证码后下次还能继续使用 | S3 |
校验码不能放在本地网底脚本中生成 | 本地网脚本中可以查看到验证码的生成 | S2 |
校验码必须与发送端账户绑定,如手机号、邮箱地址 | 验证码的校验与发送验证码的用户的手机、邮箱匹配 | S2 |
找回密码功能
描述 | 验证方法 | 安全等级 |
---|
输入不是认证的手机能收到验证码 | 输入不是认证的手机能收到验证码 | S1 |
手机验证码无失效时间 | 保持验证码后2-5分钟后是否还有效 | S2 |
手机验证码无发送时间间隔控制 | 找回密码的验证码发送后没有倒计时 | S2 |
发送的手机验证码和手机号码不匹配能校验通过 | 使用A用户的验证码可以找回B用户的密码 | S1 |
手机验证码无发送次数控制 | 同一手机可以一直发送验证码 | S2 |
手机验证码输错后没有失效 | 手机验证码输错后没有失效,暴力破解 | S2 |
输入任意邮箱都能收到验证码进行找回 | 输入不是认证的邮箱可以找回密码 | S1 |
邮箱链接修改参数使用 | A收到的邮箱链接修改参数后能否被B使用 | S1 |
通过邮箱验证的链接是否使用后失效 | 邮箱链接使用过一次后是否失效 | S2 |
密码修改功能
描述 | 验证方法 | 安全等级 |
---|
没有原密码校验 | 密码修改操作步骤中是否有原密码校验逻辑 | S1 |
密码输入显示明文 | 密码输入框输入的密码显示为明文 | S2 |
新密码允许输入弱密码 | 新密码允许输入弱密码 | S2 |
修改密码请求传输明文 | 用fiddler截获看是否明文传输修改的密码 | S2 |
手机认证功能
描述 | 验证方法 | 安全等级 |
---|
输入任意手机都能收到验证码进行认证 | 用户认证输入任意手机都可以完成认证 | S1 |
手机验证码无失效时间 | 保持验证码后2-5分钟后是否还有效 | S2 |
手机验证码无发送时间间隔控制 | 点击发送验证码后没有倒计时 | S2 |
发送的手机验证码和手机号码不匹配能注册 | 用A手机获取的验证码能被B用 | S1 |
手机验证码无发送次数控制 | 同一手机可以一直发送验证码 | S2 |
手机验证码输错后没有失效 | 手机验证码输错后没有失效,暴力破解 | S2 |
邮箱认证功能
描述 | 验证方法 | 安全等级 |
---|
输入任意邮箱都能收到验证码进行认证 | 输入不是认证的邮箱可以进行邮箱认证 | S1 |
认证链接无有效时间 | 认证链接无有效时间 | S2 |
认证链接多次认证 | 认证链接可以被使用多次 | S2 |
认证链接修改参数认证通过 | A收到的邮箱链接修改参数后能否被B使用 | S1 |
其他业务场景需要根据具体的业务如:金融、通讯、流程等来梳理具体的测试用例,这里就不再一一归纳了。