1. 问题说明

验证 APP 在退出登录状态时是否会和服务器进行通信以保证退出的及时性,简单地说就是看 APP 在用户退出后,之前登录状态抓取到的数据包是否还能继续使用。

2. 测试步骤

首先在登录状态下抓取一些数据包,如查询个人信息,交易等设计个人内容的操作,之后退出登录,重放这些数据包,查看响应包是否和登录时返回的一样。如果提示已经退出则说明该 APP 是安全退出的,如果数据包仍然能使用则说明该 APP 的退出并不是安全退出,会话并没有被销毁。下图就是正常的安全退出。
安全退出 - 图1

3. 修复建议

建议在服务器编写响应移动客户端提出退出登录状态时的逻辑代码,以保证移动客户端在用户退出登录状态时同服务器完成数据交互,真正完成退出(而不是通过心跳包来判定退出),以防止攻击者进行重放攻击。