ISSUE-0090:manifest host_permissions 域名拼写错误¶
症状¶
当前无可见症状 — 这是一个被兜底权限掩盖的潜伏缺陷。
根因¶
wxt.config.ts:28:
lafaxin.com 少一个 i,正确域名是 laifaxin.com(见 src/api/request.tsx:24-26 的
https://ggdt.laifaxin.com 与 https://m.laifaxin.com)。
已进入正式构建产物:dist-v2/chrome-mv3/manifest.json 中同样是 lafaxin.com。
为什么一直没被发现¶
同一数组里有 <all_urls> 兜底 ⇒ 所有请求都被授权 ⇒ 拼错的那条形同虚设,
功能上不报任何错。这正是它能长期存活的原因。
风险¶
Chrome 商店审核对 <all_urls> 的要求正在收紧。一旦按要求去掉 <all_urls> 改用精确域名列表:
laifaxin.com未被授权 ⇒ 登录、配额、云同步(ggdt.laifaxin.com)全部请求失败- 而
lafaxin.com是个不存在的域名,授权它没有任何作用
⇒ 当前 severity=medium;一旦收紧权限即升为 critical。
修复¶
wxt.config.ts:28 改为 '*://*.laifaxin.com/*',重新构建后核对
dist-v2/chrome-mv3/manifest.json。
回归判据¶
grep -c 'lafaxin\.com' wxt.config.ts dist-v2/chrome-mv3/manifest.json # 期望 0(注意不是 laifaxin)
grep -c 'laifaxin\.com' wxt.config.ts # 期望 ≥1
建议同时加一条静态扫描:manifest 里出现的域名必须在 src/api/ 中有对应使用。
发现过程¶
2026-08-30 第四轮 sonnet5 对抗审查发现。
前三轮(16 个 Claude subagent + terra + dshf 跨厂商双路)全部漏掉 —— 因为它们都在审
「联系方式数据质量」这个被框定的范围内,没人去读 wxt.config.ts。
教训见 capability-existence-proof 与 SPEC-009 §2。