这两天做测试遇到了2个关于验证方面的问题:
1. 昨天早上开发突然发现了 cookie中存放的token值的中间部分,用base64解密以后,可以直接获得用户名和密码,多么大的bug啊,这不就等于把自己的身份证给别人看吗,多么危险
1.1 因为是用JWT来使用的会话管理,但是开发小哥哥们貌似用错了,里面存储的信息过多导致信息很容易泄漏,但是项目已经上线了,如果移除掉多于的信息 那么需要修改的代码过多,不安全,所以大神就想到了把token中的值再次进行加密,但是我在测试过程中还是遗漏了
其实我需要测试的:
A: 检测cookie中存储的信息 是否涉及敏感信息
B:检查登录部分是否可以正常运行
C : 检查下session storage中是否缓存了 敏感信息(但是这点我忘记了,而session storage中存在了用户名密码 不用破解,直接就存在,多么大的失误啊,小姐姐我一夜都难睡着,反思了一夜)
2. 有一个bug: 用户A可以访问用户B的信息
这个bug前端小哥哥在前端做了验证, 然后我就开始测试了、
A: A用户只能查看自己的report页面
B: A用户不能查看用户B的report页面,并需要给出提示信息
这一切在浏览器端运行完整(因为开发做的验证: 在请求report数据时, 验证下report id是否存在于该用户的report id的列表中,如果存在就显示,否则就报错)但是当我用fiddler直接去请求服务端数据时, A用户可以访问非自己的信息。
这其实是我第一次用fiddler去发现问题,心里的成就感真的很大,我也知道了 fiddler在请求时, 会越过前端的限制,直接去请求后端。