Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-C3c-KV跨账号读取实测结论-2026-09-30.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

35 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# C3c KV跨账号读取实测结论
2026-09-30。按用户明确要求实际尝试跨玩家KV读取;仅操作已授权101/102测试账号,固定http://s101.local:18080/。
## 方法
101、102使用独立Cookie会话登录原有账号,各以正常playerdata/Get读取本人基线。随后用101会话请求102、102会话请求101,分别尝试:
1. POST JSON增加playerId=目标账号;
2. POST JSON增加playFabId=目标账号;
3. POST JSON增加userId=目标账号;
4. URL增加?playerId=目标账号,保持原POST keys请求。
目标参数是本次探测候选,不宣称属于服务端已定义合同。只请求NewPlayerDataDic、Lv、LastLoginTimeUtc三个键;不枚举其他账号、不猜其他路由、不发送Set/Delete。摘要以排序后的返回data对象计算SHA256,不持久化存档正文或Cookie。测试末尾分别再读本人基线排除期间变化。
## 结果
| 认证账号 | 指定目标 | 四种参数尝试 | 返回等级 | 摘要比较 |
|---|---|---|---|---|
| 101 | 102 | 全部HTTP200 | 62(本人),非60(目标) | 全部等于101本人基线,不等于102基线 |
| 102 | 101 | 全部HTTP200 | 60(本人),非62(目标) | 全部等于102本人基线,不等于101基线 |
8/8未取得目标档;前后本人基线均稳定。没有403/401拒绝结果,准确描述是:这些目标参数未改变返回档案的归属,表现为被忽略,仍按当前认证会话返回本人数据。
共14次正式请求:2登录、2初始本人读取、8跨账号尝试、2本人复读。登录确认state=0、newCreate=false;认证可能有原有登录元数据副作用。KV写入0、好友写入0、资料更新0,生产/测试源码及服务器代码零修改,无Unity Play或打包。
## 结论及证据边界
- 当前已核playerdata/Get在上述四种传参方式、两个授权账号下,不能像原PlayFab GetUserDataRequest.PlayFabId那样选择其他玩家读取;客户端简单增加目标ID无法完成替换。
- 这是具体接口的实测结果,不是证明服务器不存在其他跨玩家公开资料接口,也不是对所有未文档化参数的穷举。不存在跨账号数据泄露证据。
- 先前SearchFriend跨玩家成功属于独立好友资料接口,不等于跨账号KV读取成功。该接口当前返回等级1等差异仍保留,不能据此称已能取得目标KV档。
- 登录时间先存KV的既定方向保持;好友消费这些字段仍需服务端按既有权限的公开资料/好友路径提供等价返回。本轮不自行添加接口、切换时间源或改原业务。
完整脱敏实测:`M2-C3c-KV跨账号读取实测-2026-09-30.json`。将本结论并入同一次C3c审查,不改变完整审核通过后编码的门槛。