进行远程“黑盒测试”查找这类细微的线程安全问题非常麻烦,应被视为一项专门任务,只有极其注重安全的应用程序才需要进行这种测试。
(1)针对选择的关键功能进行测试,如登录机制、密码修改功能与转账过程。
(2)对每一项测试的功能,确定某位用户在执行一项操作时需要提交一个或少数几个请求。同时,找到确定操作结果的最简单方法,例如,核实用户登录后是否能够查看他们自己的账户信息。
(3)使用几台高规格的机器,从不同的网络位置访问应用程序,写出一段攻击脚本,代表几名不同的用户反复执行相同的操作。确定每项操作是否达到预期的结果。
(4)为接收大量错误警报做好准备。根据为应用程序提供支持的基础架构的规模,可能需要对安装的软件进行负载测试。有时,反常现象可能与安全无关。