安全测试——验证&日志文件
口令验证
目前大多数的Web系统都设置了登陆功能,只有验证通过后,才能访问相关的数据信息。在测试此类功能时,必须测试有效和无效的用户名及口令,同时需考虑大小写、错误次数限制、代码注入等。口令安全测试通常融合在功能测试中。
授权验证
典型的业务系统基本由用户、用户组(角色)、权限及基本功能构成,权限管理在整个业务系统中起着至关重要的作用,即使通过了口令验证,不同用户、不用角色仍可能具有不同的权限,因此在测试过程中需重点测试授权问题,如未登陆是否可以浏览信息、未授权是否可以使用功能、权限重叠时能否正确分配等。
【案例1 ECShop授权测试】
ECShop管理员设置时,可根据创建的角色,分配对应的权限,然后检测该角色的用户能否使用赋予的权限,未赋予的权限则不应使用。
1) Admin登陆后台,创建“商品管理员”角色,并赋予商品管理相关权限,其他权限则不设置,如图1所示。
图1 ECShop后台创建角色
2) 创建管理员,并将其角色设置为“商品管理员”,如图2所示。
图2 创建商品管理员用户
3) 使用“liudebao”帐号登陆后台,验证权限是否正确,“商品管理员”角色应当具有商品管理的所有权限,其他未赋予权限的模块则不应当出现,但实际测试时出现设计方面的缺陷,“liudebao”应用界面出现了“短信管理”-“短信签名”菜单,但进入后提示信息如图5- 62所示,而其他无权模块均不可见,因此两者设计方式不统一,测试工程师应当提交“权限模块控制方式不一致”方面的缺陷。
图3 模块权限错误提示信息
权限测试在实际测试工作中是一个难点,因为可能涉及非常多的权限,测试方法可使用正交试验方法进行优化测试用例组合,从而减少用例,提高测试效率与效果。
日志文件
日志的功能是追踪,任何可能危害系统安全的操作都应被记录,测试时需确认是否以安全的方式记录了应该记录的信息。
【案例2 ECShop日志功能测试】
ECShop的后台管理员可查看管理员对系统的操作行为,如图4所示。
图4 管理员操作日志
从功能测试角度考虑,需验证该日志管理功能是否正确实现,但从安全测试角度,则需考虑该日志管理是否记录了应该记录的信息,从日记记录的结果来看,并没有对其他管理员的操作进行记录,而且其他角色的用户即使赋予了日志管理权限,但也只能查看admin用户的操作日志,因此测试工程师测试此处功能时可提交一个日志记录方面建议性的缺陷。