Figma Console MCP安全架构全景:OAuth加密存储、6位配对码CSWSH防护与零遥测数据隐私设计
【免费下载链接】figma-console-mcpYour design system as an API. Connect AI to Figma for extraction, creation, and debugging.项目地址: https://gitcode.com/gh_mirrors/fi/figma-console-mcp
Figma Console MCP 是一款"把设计系统变成 API"的开源工具,让 AI 连接 Figma 完成设计稿提取、创建与调试。它的 Figma Console MCP 安全架构围绕三条防线展开:OAuth 令牌加密存储、6 位配对码与 CSWSH 防护,以及零遥测的数据隐私设计。本文带你逐层拆解这套机制,帮你放心地把 AI 接入自己的 Figma 工作流。
🛡️ 双部署模式:本地零外网,还是云端全 HTTPS?
Figma Console MCP 提供两种部署模式,安全边界完全不同:
| 维度 | 本地模式(推荐敏感环境) | 远程/云模式 |
|---|---|---|
| 传输方式 | stdio,完全跑在本机 | Cloudflare Workers + SSE |
| 外部网络调用 | 零,Figma API 由本机直连 | 全链路 HTTPS 加密 |
| 凭证位置 | 你的本地 MCP 客户端配置 | 服务端 KV 加密存储 |
本地模式下所有通信都不离机,日志也只留在本机,是安全敏感场景的首选;云模式则专为浏览器端的 MCP 客户端设计,OAuth 令牌在服务端托管。完整说明见 SECURITY.md 与 docs/security.md。
🔐 OAuth 加密存储:令牌如何落地与流转
云模式下,Figma Console MCP 使用Figma 官方 OAuth 2.0 流程,不自造任何凭证体系。令牌的生命周期管理如下:
- 加密落地:令牌存入 Cloudflare Workers KV,静态加密(encrypted at rest),并按会话隔离,用户之间互不可见
- 自动刷新:令牌到期前用 refresh token 自动续期,过期 90 天后自动清理
- CSRF 防护:OAuth 的 state 令牌单独存 KV,仅 10 分钟 TTL,防止回调被伪造
- 会话绑定:配对后的中继 ID 以
relay:{bearerToken}为键存入 KV(24 小时 TTL),只有持有正确 Bearer 令牌的 AI 客户端才能路由到自己的会话
令牌写入 KV 的核心逻辑在 src/index.ts,KV 命名空间定义在 src/browser-manager.ts。管理员侧的 OAuth 应用创建与密钥配置流程,可参考 docs/oauth-setup.md。
对于本地模式的 PAT(个人访问令牌),它只存放在你的 MCP 客户端环境配置里,除api.figma.com外不会发往任何第三方。下图中的令牌字段已做打码处理,正是这种"凭证留本机"的做法:
🔑 6位配对码:一次性、5分钟过期的连接握手
云模式下,AI 客户端要操作你桌面上的 Figma 文件,需要把 Desktop Bridge 插件"配对"到云端会话。这个握手的每一步都按最小信任设计:
- 难猜:
figma_pair_plugin工具调用crypto.getRandomValues生成 6 位大写字母数字码,字符集特意剔除0/O/1/I这类易混淆字符,见 src/core/cloud-websocket-relay.ts - 短命:配对码写入 KV 时携带5 分钟 TTL(src/index.ts),过期即失效
- 一次性:插件用码换取会话后,该码立即从 KV 中删除,无法重放(src/index.ts)
- 会话隔离:每次配对创建一个独立的 Durable Object 实例,一个中继只接一个插件,天然避免跨会话串流
所以即便配对码被人看到,攻击窗口也只有 5 分钟且用一次即作废——这正是"6 位配对码"看似简短却足够安全的原因。
🌐 CSWSH 防护:Origin 白名单 + 本地回环绑定
CSWSH(跨站 WebSocket 劫持)是本地 WebSocket 桥的常见威胁:恶意网页诱导已登录用户的浏览器去连localhost端口。Figma Console MCP 做了双重防御:
- Origin 精确白名单:WebSocket 升级请求在
verifyClient中校验来源,只放行 Figma 官方域名和沙箱环境,且使用精确匹配而非前缀匹配——startsWith会让https://www.figma.com.attacker.example这类域名混进来。未授权来源直接返回 403 并记录警告,实现见 src/core/websocket-server.ts - 仅绑定 localhost:桥接服务器只监听本机回环地址(端口段
9223–9232,支持多实例),外部网络根本摸不到
再叠加全局网络白名单——运行时只允许访问api.figma.com、localhost:9223–9232和云模式的*.workers.dev,无第三方分析、CDN 或额外 API 调用。
📊 零遥测数据隐私:不存储、不追踪、沙箱执行
Figma Console MCP 的数据处理承诺非常直接:
| 方面 | 做法 |
|---|---|
| 设计数据存储 | 无,不持久化、不落盘缓存 |
| 遥测/分析 | 无,没有任何使用数据收集 |
| 日志 | 仅本地,不出机器 |
| 凭证 | 存于本地配置或服务端 KV,绝不通往第三方 |
figma_execute类代码执行工具也在Figma 插件沙箱内运行:无文件系统访问、无沙箱外网络、只能改动当前打开的 Figma 文件,且所有改动受 Figma 版本历史保护。由于零数据持久化与零遥测,GDPR 等合规面上几乎没有暴露点。详细范围说明见 docs/security.md。
✅ 安全自检清单
评估 Figma Console MCP 安全架构时,可以直接对照这份清单:
- 开源可审计,MIT 许可证,全部代码可自查
- OAuth 令牌静态加密存储、按会话隔离、自动清理
- 6 位配对码:强随机生成、5 分钟过期、一次性使用
- CSWSH 防护:Origin 精确匹配白名单 + 仅绑定 localhost
- 代码执行沙箱化于 Figma 插件环境
- 零数据持久化、零遥测、零第三方运行时依赖
- 全链路 HTTPS 加密
一句话总结:Figma Console MCP 的安全设计不是"加一道锁",而是每层都少给一分信任——本地模式不出网、配对码一次性、令牌静态加密、遥测归零。对新手来说,选择本地模式 + PAT 就已能获得这套完整防护。
【免费下载链接】figma-console-mcpYour design system as an API. Connect AI to Figma for extraction, creation, and debugging.项目地址: https://gitcode.com/gh_mirrors/fi/figma-console-mcp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考