之前在使用某APP软件时,弹出了如下的错误信息。作为一个测试,看到这些信息,总会忍不住深挖下,也是蛮有意思的。
01
从上面的报错信息,至少可以得到以下几个信息:
以上信息是否有用呢?对一般人来说,也没什么大用,但是对于从事安全的人员来说,问题可能就有点大,咨询过公司的安全人员,知道这个场景后,可以继续做更多的试探,进而获取到有用的信息,具体怎么玩的,我也不敢多问。
02
这个问题其实就是对系统的异常没有捕获到,或者捕获了没有处理,直接抛给前端,然后前端也没有做处理,直接丢到页面上去。类似的代码如下:
正确的处理方法应该包括异常捕获、错误信息记录、友好的用户提示以及对敏感信息的保护,如下图所示:
把真实的错误信息写到日志里去,然后根据指定的ERROR_CODE,给用户输出更为友好的信息。
同时,SpringBoot也支持通过@ControllerAdvice+@ExceptionHandler实现全局异常处理, 避免重复代码。
03
对于测试的同学而言,可以考虑以下几个方面:
在设计这些测试用例时,要注意覆盖不同的异常情况和错误处理路径,以确保代码能够正确捕获和处理异常,而不仅仅是简单地通过catch块来吞掉异常
04
当然,这问题也没必要上纲上线,本文纯粹就是讨论,这类问题靠测试验证其实是无法全覆盖,也很低效。
这类问题最好的解决方案就是代码规范化以及及时的Code Review,大家都专注于各自领域。
研发遵循已有的代码规范和编程实践,解决技术问题。
测试专注场景设计及探索性测试,解决业务覆盖问题。
共勉。