一、安全风险:从协议到实现的隐患
- 认证机制混乱
- 问题:MCP早期未定义统一认证标准,导致服务器各自为政。部分服务器甚至无鉴权机制,访问敏感数据时风险极高。
- 案例:某企业因开源项目配置的MCP服务端使用默认空密码,导致内部文档被爬取。
- 解决方案:
- 优先选择支持OAuth 2.1的MCP服务器,强制启用PKCE(Proof Key for Code Exchange)防止中间人攻击。
- 在配置文件中显式声明环境变量(如
AWS_PROFILE
),避免默认配置泄露权限。
- 本地代码执行风险
- 问题:MCP的
stdio
模式允许用户直接运行第三方代码,恶意插件可能窃取本地文件(如.bash_history
)。 - 避坑技巧:
- 使用沙盒环境运行MCP服务,限制文件读写权限。
- 对下载的MCP插件进行代码审计,优先选择社区认证的聚合平台(如MCP.so)。
- 问题:MCP的
- 输入信任盲区
- 问题:多数MCP服务器直接执行用户输入,但大模型可能误译意图(如“删除文件”操作)。
- 优化方案:
- 在关键操作前强制二次确认(如“确认删除?”)。
- 通过MCP协议的
max_response_length
参数限制输出长度,减少token消耗与误操作风险。