编号:U-05 严重级:low 工作线:身份、群、在线与认证基础(internal/app/identity、group、presence、internal/auth) 来源:审查 I-15 依赖:无 被依赖:无
\
%
_
ESCAPE '\'
e_
e_ab
exab…
inline
internal/app/presence/app.go;编号校验处(internal/protocol 的编号校验函数,或注册与后台开通的校验)。
internal/app/presence/app.go
internal/protocol
编号校验若在 internal/protocol,属共享文件,改动只加一个保留字判断。
e_ab1
exab2
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
presence/app.go:124-134
presence/app.go
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 8ca545a fix: 目录搜索转义 LIKE 通配符并拒绝编号 inline (#43)。
0c9b459
8ca545a
No dependencies set.
The note is not visible to the blocked user.
编号:U-05 严重级:low 工作线:身份、群、在线与认证基础(internal/app/identity、group、presence、internal/auth) 来源:审查 I-15
依赖:无 被依赖:无
结论与统一方案
\、%、_转义后再拼进查询,并加ESCAPE '\'。服务器生成的编号都以e_开头,搜e_ab会同时匹配exab…,搜%返回全部端。(审查 I-15)inline列为保留编号,注册、后台开通、批量导入都拒绝。mochi 内联客户端的 ClientID 就是inline,同名端登录时 mochi 会把内联客户端当成旧会话接管;实际影响尚未复现(传输区审查的待核实第 6 条),但修复成本极低,先行规避。改动文件
internal/app/presence/app.go;编号校验处(internal/protocol的编号校验函数,或注册与后台开通的校验)。与其他问题的交互 / 冲突说明
编号校验若在
internal/protocol,属共享文件,改动只加一个保留字判断。验收与测试
e_ab1和exab2时,搜e_ab只返回前者。inline都被拒绝。问题明细(各区审查原文,证据含文件与行号)
[I-15] 目录搜索的 LIKE 通配符没有转义
e_开头,搜e_ab会同时匹配到exab…;搜%返回全部端。presence/app.go:124-134。_是编号允许的字符。\、%、_转义后再拼进查询,并加上ESCAPE '\'。presence/app.go。e_ab1和exab2时,搜e_ab只返回前者。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交8ca545afix: 目录搜索转义 LIKE 通配符并拒绝编号 inline (#43)。