PR REVIEW EVIDENCE

feat(entity-log): 公司旧备份实体日志接入在线查询(禅道 #3442)

hemo-backend #1382

  1. PR 提交时间2026-10-09 16:13:18
  2. 审核结束时间2026-10-09 17:57:13
  3. 固定版本d80cb0d9e30b
  4. 模型链gpt-5.6-terra → gpt-5.6-sol
  5. 门禁blocked
  6. 结果success

难度分

84
  • code_volume86涉及查询、分页游标、离线导入、OSS 客户端、数据库迁移、运维脚本及多类测试,改动面较大。
  • architecture_complexity84同时协调热数据、现有归档、旧库独立路由、对象存储与分页兼容性。
  • domain_knowledge88需要理解医疗日志权限隔离、排班机构范围、归档对象一致性和生产数据迁移约束。
  • impact_scope74影响公共实体日志查询与排班历史查询,但旧数据仅在路由发布后参与结果。
  • risk_level85包含历史日志导入、OSS 访问、生产路由写入和 root 运维脚本,数据安全与完整性风险较高。

完成分

94
  • correctness100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • completeness100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • code_quality100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • security60最终风险固定扣分:high 1×40;合计 -40
  • details100本次静态审核未发现该维度的确认问题;不代表绝对完善

固定范围

目标分支 SHA
0effc12b1fb5bb52e10d017e76ce8b971a2e4efe
共同祖先 SHA
d634fbd39fb172de16835ee40f12e7597e97e7a8
PR head SHA
d80cb0d9e30bead1a177a2cd86ff17a7b75631c5
轻量检查
passed · 轻量检查通过

风险与证据

high · 已确认 · 已计入完成分

审核过的 SDK 目录可在校验后被替换并以 root 身份加载

攻击者可能借被替换的 SDK 读取备份访问密钥和历史患者日志,并以 root 权限执行任意操作,造成数据泄露、篡改或服务器受损。

证据:scripts/ops/legacy_entity_log_oss_pilot.py:56 if os.geteuid() == 0: for path in [root] + list(root.rglob('*')): st = path.lstat() if st.st_uid != 0 or st.st_mode & 0o022: raise RuntimeError('SDK_DIRECTORY_NOT_ROOT_ONLY')

建议:校验 SDK 目录的完整父目录链均由 root 所有且不可被其他用户写入,并在导入前重新核对目录 inode 与内容摘要;更稳妥的是通过已打开的目录描述符或不可替换的受控路径加载依赖。