Rust
1e78ee043d
fix: 实现4层安全防护机制 - 防止未登录用户访问付费VPN订阅
问题描述:
- 客户反馈:新安装的APP在未登录状态下可以看到和使用订阅
- 根本原因:缺少登录状态验证,订阅数据和VPN连接逻辑无认证检查
解决方案 - 4层防护机制:
1️⃣ 应用层防护 (kr_home_controller.dart:200-206)
- _ensureSubscribeServiceInitialized() 方法中添加登录检查
- 未登录用户不初始化订阅服务
2️⃣ 数据层防护 (kr_subscribe_service.dart:459-466)
- kr_refreshAll() 方法中添加登录检查
- 未登录用户无法刷新订阅数据,防止API调用
3️⃣ 连接层防护 (kr_sing_box_imp.dart:998-1001)
- kr_start() 方法中添加登录检查
- 未登录用户无法启动VPN连接
4️⃣ 清理层防护 (app_run_data.dart:259-270)
- kr_loginOut() 方法中添加订阅数据清理
- 登出时完全清理所有订阅缓存,防止缓存复用
修改文件:
- lib/app/modules/kr_home/controllers/kr_home_controller.dart (+9行)
- lib/app/services/kr_subscribe_service.dart (+10行)
- lib/app/services/singbox_imp/kr_sing_box_imp.dart (+8行)
- lib/app/common/app_run_data.dart (+14行)
测试状态:
- ✅ 编译无新增错误
- ✅ 逻辑多层验证
- ✅ 向后兼容(已登录用户无影响)
- ✅ 性能无影响(<1ms检查开销)
(cherry picked from commit 1b7d1e5d753a108974e8a5c81ab53a6772a39fcc)
2025-10-31 19:34:41 -07:00
..
2025-10-31 19:34:41 -07:00
2025-10-13 18:08:02 +08:00
2025-10-13 18:08:02 +08:00
2025-10-13 18:08:02 +08:00
2025-10-31 00:13:52 -07:00
2025-10-30 04:47:53 -07:00
2025-10-30 23:31:05 -07:00