首页/文章/Claude Code 的 WebFetch:你没点同意,也可能在读「预批准」文档站

Claude Code 的 WebFetch:你没点同意,也可能在读「预批准」文档站

· Zumac.Ai

官方已经写清楚的例外

Claude Code 的 WebFetch 会按你给的 URL 拉页面。很多人以为:只要权限模式是 Manual 或 acceptEdits,出站读网页都会先问你。

官方 Tools reference 的例外更细:

In Manual and acceptEdits permission modes, WebFetch prompts before fetching, except for domains your permission rules already allow or deny and a built-in set of preapproved documentation domains that fetch without a prompt.

也就是说:你 settings 里一行都没写时,仍有一批「内置预批准文档域」可以不弹确认就拉取。同页也写了唯一能盖过这批名单的办法——显式的 WebFetch(domain:...) 写进 deny / ask / allow;其中 deny 与 ask 才能真正拦住或强制再确认预批准域。只写 allow、把名单「收窄」,挡不住预批准集合。

公开仓库里,止住侧是 0

@MindOrbitAI 与 @kotteri_ai 转述同一份扫描(公开约 3,255 仓库、拿到配置后统计):

  • 提交了 .claude 配置的约 368 本;
  • 其中写过 WebFetch 相关规则的约 51 本;
  • 这 51 本里,deny 与 ask 均为 0——大家几乎只在写「允许谁」,没人写「不许谁 / 先问我」;
  • 另有仓库把本该本机私有的 .claude/settings.local.json 也提交了(扫描里约数十本量级)。

文章强调:预批准域多半是官方文档一类站点,日常未必立刻出事;真正要防的是——拉回来的文字里若夹带指令,可能成为下一步工具调用的依据。入口用 deny/ask,执行前还可用 PreToolUse hook。

可执行清单

  1. 打开项目 .claude/settings.json,为敏感域加 WebFetch(domain:...) 的 deny 或 ask(需要时再对预批准域动手)。
  2. 不要用裸 WebFetch / WebFetch(*) 当「全开」。
  3. 弹窗选 Yes, and don't ask again 时,规则会进 settings.local.json——确认 .gitignore 已忽略该文件,别提交给全队。
  4. 对照官方 permissions / tools-reference 升级后做一次 /permissions 自查。

如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服