部署一个受OAuth保护的远程MCP服务器:规范与3个安全漏洞
本文介绍了如何构建一个符合规范且受OAuth保护的远程MCP(模型上下文协议)服务器,并重点探讨了在此过程中发现的三个关键安全漏洞。作者结合MCP规范(包括传输层、认证与授权机制),深入分析了实现远程MCP服务器时可能遇到的OAuth集成问题,例如令牌泄露、会话劫持和权限提升等安全缺陷,并给出了相应的修复建议。对于希望在生产环境中安全部署MCP服务的开发者而言,这篇文章提供了宝贵的实践经验与安全最佳实践。
背景速读
MCP(Model Context Protocol)是 Anthropic 主导开发的开放协议,用于连接 AI 大语言模型(如 Claude)与外部数据源或工具。传统上 MCP 在本地运行,本博客讨论将其做成远程服务,并加上 OAuth 2.1 认证。
OAuth 2.1 是目前最新的授权标准,用于让第三方应用安全地代表用户访问 API。博客作者在实现过程中发现了三个安全漏洞。
关键公司和项目:
- Anthropic:Claude 背后的 AI 公司,主导 MCP 协议。
- SkillDB.dev:作者所属团队,在做基于 AI 的数据查询产品。
三个安全漏洞的行业背景:远程 MCP 仍属早期,规范尚未稳定,实现时容易踩坑。这类漏洞本质上与“上帝模式” API 密钥泄漏、中间人攻击、以及 OAuth 流程中的状态参数校验缺失有关,是 OAuth 实现中最常见也最具破坏力的错误。