context-mode CTX_FETCH_STRICT模式:CI和托管环境如何一步阻断内网地址

发布时间:2026/9/1 14:04:25
context-mode CTX_FETCH_STRICT模式:CI和托管环境如何一步阻断内网地址 context-mode CTX_FETCH_STRICT模式CI和托管环境如何一步阻断内网地址【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-modecontext-mode 是面向 AI 编程代理的开源上下文窗口优化插件它通过沙箱化工具输出节省约 98% 上下文并持久化会话记忆支持 17 个平台的 MCP hooks 路由。当它运行在CI 流水线或托管环境中时你可以用一行环境变量CTX_FETCH_STRICT1开启严格模式让ctx_fetch_and_index抓取工具彻底阻断对内网地址、回环地址和云元数据服务的访问——这正是共享服务场景下防 SSRF服务端请求伪造的关键一步。为什么 CI 和托管环境需要 CTX_FETCH_STRICT在你的开发机上AI 代理访问localhost:3000的本地开发服务器、192.168.x.x的内网文档系统都是再正常不过的工作流所以 context-mode默认放行这些私有地址。但在 CI 或托管环境中情况完全不同运行环境不是开发者本人的机器内网里可能藏着其他服务的凭据端点AI 代理抓取的外部网页可能被间接提示注入诱使它去请求169.254.169.254AWS/GCP/Azure 的 IMDS 云凭据接口恶意域名可以通过 DNS 解析曲线球把解析结果指向内网 IP。CTX_FETCH_STRICT就是为这种运行时不受你控制的场景设计的开关开启后回环 RFC1918 内网 IPv6 ULA 一并封禁。CTX_FETCH_STRICT 如何工作SSRF 防护三步走 严格模式并不是简单地禁止某个 IP它建立在三层防护之上实现见 src/server.ts 的ssrfGuard协议白名单只允许http:和https:file://、gopher://、javascript:、data:一律拒绝。先解析 DNS 再检查 IP防护对象是解析出来的真实 IP而不是 URL 字符串。一个指向169.254.169.254的合法域名照样会被拦截。IP 三档分类裁决classifyIpblock链路本地 / IMDS / 多播 / 保留段 →永远拦截private回环、RFC1918 内网、IPv6 ULA → 默认放行CTX_FETCH_STRICT1 时拦截public公网地址 → 放行。更细的防御还有两处DNS 重绑定防御抓取在子进程中执行子进程里每一次dns.lookup都会重新过一遍 IP 分类。攻击者即使先返回公网 IP 骗过父进程预检、再在连接时切换到内网 IP也会在 TCP 建立前被中止代理环境变量剥离子进程会删除HTTP_PROXY等全部代理变量防止流量绕道代理绕过 DNS 守卫。最快启用方法CI 中设置 CTX_FETCH_STRICT1在 CI 或托管服务的启动脚本里加一行即可export CTX_FETCH_STRICT1官方说明可参考 README.md 的Network fetch hardening一节。注意两点该开关只收紧、不放宽默认拦截段IMDS、多播、保留段不受影响仍然硬拦截拦截时错误信息会明确提示blocked under CTX_FETCH_STRICT1便于在 CI 日志中定位原因。严格模式下哪些内网地址会被拦截地址段类型默认模式CTX_FETCH_STRICT1169.254.0.0/16含 IMDS169.254.169.254链路本地 / 云元数据 硬拦截 硬拦截fe80::/10、ff00::/8IPv6 链路本地 / 多播 硬拦截 硬拦截0.0.0.0/8、224、::保留 / 多播 / 未指定 硬拦截 硬拦截127.0.0.0/8、::1回环localhost✅ 放行拦截10.x、172.16-31.x、192.168.xRFC1918 内网✅ 放行拦截fc00::/7IPv6 ULA 私有地址✅ 放行拦截8.8.8.8等公网地址公网✅ 放行✅ 放行边界判定相当严格例如172.15.0.1和172.32.0.1不属于 RFC1918按公网处理::ffff:127.0.0.1这类 IPv4 映射 IPv6 地址会被递归归类不会悄悄漏网。相关用例覆盖在 tests/core/server.test.ts。源码导读想深入可以看这几处模块路径SSRF 守卫与严格模式判定src/server.tsIP 三档分类器 classifyIpsrc/server.ts子进程内 DNS 重绑定防御src/server.ts抓取缓存守卫先于缓存防投毒src/fetch-cache.ts安全策略deny/allow/asksrc/security.ts小结一句话记住CTX_FETCH_STRICT本地开发机保持默认内网和 localhost 可抓CI 与托管环境设CTX_FETCH_STRICT1内网一律封禁。它让 AI 代理的抓取能力在不可信运行环境中不再成为一条潜在的 SSRF 通道——这也是 context-mode 在 17 个平台上安全运行的关键一环。【免费下载链接】context-modeContext window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP hooks.项目地址: https://gitcode.com/GitHub_Trending/cl/context-mode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考