前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9915
  • 技能触发不准,先改好 description
  • AI 生成页面上线前,补验 GA4 事件链路
  • 让客服机器人把处理结果反馈到检索排序
  • Muse Spark Open 发布,主打编程与 Agent
  • FLUX 3 Klein 开放权重,8GB 显存可运行
  • Gemini 4 Argon 整合机器人控制与仿真
  • 英伟达开放多模态模型,面向企业智能体
  • Vercel 扩展后端与 Agent 部署能力
  • 英伟达发布面向智能体的多模态开放模型
  • 英伟达扩充智能体模型,覆盖云端与本地
  • 日合并超三万次,Anthropic 重构版本控制
  • CLiF 将智能体运行记录转为训练评测资产
  • GitHub 代码扫描智能体修复正式可用
  • Webhook 驱动 Agent 的可靠性要点
  • 用 TypeScript 为 Agent 补齐应用连接器
  • 177 项科研技能补齐智能体领域知识
  • 发现 AI 擅自决策:简单审查胜过复杂流水线
  • WhatsApp 智能体上线后的工程难题
  • Netflix 为编程智能体接入 IDE 代码分析引擎
  • PentAGI 用多智能体执行渗透测试
  • MCP 排错日志里的凭据泄露隐患
  • Jev新版加入图像输入与26.2万上下文
  • 微软用知识编译降低智能体延迟与耗量
  • Grok语音模型升级,接口与价格保持不变
  • 把 ClickUp 项目记录变成 Agent 可查询记忆
  • Matrix-Game 4.0 开源单卡实时生成游戏
  • Agent 接入外部服务前先检查失败恢复能力
  • 多模型网关踩坑:推理预算吃光了回答
  • Step 5 Preview 开放权重,可部署百万上下文
  • AI 工具写操作防重:执行前先抢占
  • 给 n8n 的模型输出加一道契约检查
  • 自托管 AI 工具漏洞公告可能漏过扫描
  • 本地运行 Gemma 4:推测解码与草稿模型
  • AI 代码上线前先排查这些安全漏洞
  • Copilot更新HydraFusion并新增Max
  • MCP工具数量实测:准确率之外更要看成本
  • Apigee 支持在自有集群运行 MCP 工具
  • 编程 Agent 源码研究:架构比功能清单耐用
  • 把 GPU 内核调优变成夜间并行搜索
  • AI 生成的 Supabase 权限代码可能允许提权
  • Agent 成本控制要先预留并发调用预算
  • 全 AI 编码项目如何靠质量关卡持续交付
  • AI反编译加速老游戏移植,也带来风险
  • 用 AgentCore 构建可适应新格式的文档处理
  • 用 Issue 标签驱动 AI 分析与提 PR
  • AI 辅助六天串起 Chrome 漏洞利用链
  • Claude Code 改造电商站的操作与复盘
  • Agent 平台缺少身份配置却开放管理权限
  • 英特尔将至强推理调优封装进容器
  • 用 AgentCore 将企业文档生成演示文稿
  • 用 Bedrock Agent 编排云安全修复
  • 已加载 51 / 9915
8.0
热点
AI SCORE
技术实践2026-10-15 14:23

MCP 排错日志里的凭据泄露隐患

dev.to · AI#MCP#日志安全#凭据保护
Editor brief · 编辑速览

OAuth 排错时,URL 查询参数或表单中的密钥可能被错误处理逻辑复制进日志,随后随问题报告长期留存。文章以 MCP Inspector 2.9.0 为切入点,讨论调试信息与凭据暴露之间的边界。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

MCP 日志应该告诉我哪里出了问题,并提供足够的调试信息。如果它连请求中附带的 access token 也一起交了出来,那就麻烦了。

一次 OAuth 失败就可能越过这条界线,甚至不需要有人刻意记录 token。URL 的查询字符串里可能带着 secret,表单请求体里也可能有。随后,错误处理逻辑把请求复制进错误消息,而你又把这条消息粘贴到了 issue 中。

为什么调试工具会变成凭据存储库?因为复制出去的错误信息,会比你试图修复的那次短暂会话存在得更久。

MCP Inspector 2.9.0 就提供了一个值得研究的案例。

modelcontextprotocol / inspector

GitHub logo

用于 MCP server 的可视化测试工具

这是一个用于检查 Model Context Protocol(MCP)server 的开发者工具。它以单个软件包 @modelcontextprotocol/inspector 分发,提供四种检查 server 的方式:

Web — 基于 Vite + React + Mantine 的单页应用,配有 Node 后端。

CLI — 可编写脚本的命令行客户端,适用于自动化、CI,以及需要快速反馈的 Agent 工作流程。

TUI — 使用 Ink 构建的交互式终端 UI。

mcpdo(实验性)— 用于管理连接的 CLI:连接一次后,就可以通过隐式运行的本地 daemon,对命名连接执行多条命令。参见 clients/mcpdo。

前三种方式都通过同一个全局 mcp-inspector 可执行文件运行;mcpdo 则是同一软件包中的第二个可执行文件:

npx @modelcontextprotocol/inspector                   # web UI (default)
npx @modelcontextprotocol/inspector --cli             # CLI
npx @modelcontextprotocol/inspector --tui             # TUI
npx -p @modelcontextprotocol/inspector mcpdo --help   # mcpdo

Inspector 会管理 OAuth token、OAuth client secret 和 stdio env: 的值等 secret,并将它们存储起来……

这个版本将获取到的 OAuth token 移入 secret store,并修复了 CLI 错误封装中 URL 查询参数里的 secret 脱敏问题,以及已记录请求体中表单 secret 的脱敏问题。其中一项修复针对的是这样一种情况:表单 secret 的尾部被一个未经编码的 & 拆开了。这些细节告诉我们,审查自己的 MCP 工具时该检查哪些地方:存储、错误文本和请求记录,对 secret 的处理方式未必相同。

Review each secret-handling surface

检查你即将分享的材料

在把 Inspector 日志、终端录屏或 tool-call trace 附到公开 issue 之前,先检查即将离开你电脑的那份副本。如果准备分享的是底层文件,就不要因为 UI 中显示得让人放心而掉以轻心。

先看 URL。保留 endpoint、状态,以及某个 OAuth 步骤失败这一事实。在把 URL 粘贴到任何地方之前,先移除查询参数中的凭据。也要检查错误消息:它们可能直接引用 URL,而不是把 URL 放在单独的请求字段里。

接着,检查请求体和响应体。表单数据尤其值得仔细检查,特别是在错误记录中包含原始请求体时。脱敏代码必须能够处理不规范的输入,Inspector 针对原始 & 的修复就说明了这一点。某个字段在一个视图里看起来已经被遮蔽,并不能证明所有记录副本都做了遮蔽。

然后,检查 token 在两次运行之间存放在哪里。Inspector 2.9.0 会将获取到的 OAuth token 保存在 secret store 中,但存储本身也需要单独审查。发布说明记录了一个已知问题:共用同一个 server 的 OAuth profile,可能会相互覆盖 token。如果你通过 MCP_INSPECTOR_OAUTH_STATE_PATH,为同一个 server 使用不同的 profile,发布说明建议为每个 profile 配置独立的 secret store:设置 MCP_INSPECTOR_SECRET_STORE=file,并分别指定不同的 MCP_INSPECTOR_SECRET_FILE;或者为每个 profile 配置独立的 MCP_STORAGE_DIR。默认的单 profile 配置不受影响。

最后,凭据一旦暴露,就要按已经泄露来处理。事后从 issue 评论里删掉它,并不能让它从此前的通知、下载文件或复制出去的 trace 中消失。应通过服务提供方撤销或轮换凭据,再用脱敏后的版本替换已经分享的材料。

MCP 是 Agentic AI Foundation 旗下的开源项目之一。它的工具本就应该接受公开检查、测试和讨论。你应该能够报告失败的 OAuth 步骤,以及导致失败的响应,而不必顺手把一份仍然有效的凭据交给下一位读者。保留诊断细节,去掉 token。

如果要采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
PentAGI 用多智能体执行渗透测试
下一篇
Jev新版加入图像输入与26.2万上下文