Skip to content

插件安全指南

隔离原则

第三方 iframe 插件运行在独立 origin,与 UnityAI 主应用 完全隔离

  1. 零凭证下发 — 不向 iframe 传递 session JWT、plugin_token 或 API Key
  2. 宿主代理 — 所有 AI 调用经 postMessage → 宿主 → 后端(X-Plugin-Id + 用户 access token)
  3. 零数据权限 — Lab 全部插件 permissions = [],不可访问消息/联系人/日历/存储
  4. 按需可用 — 仅用户打开插件期间,宿主才代理 AI 请求

后端校验

  • POST /api/ai/chat/completions:若带 X-Plugin-Id,校验用户已安装该插件
  • GET /api/plugin/model-config必须X-Plugin-Id,且不返回 API 端点
  • plugin_token 仅用于本地子进程后端,iframe 远程插件不可用

托管插件安全

  • 子进程与主应用网络隔离
  • 资源限制:256MB 内存、3600s CPU、10 子进程(Linux)
  • 自动健康检查 + 崩溃重启(最多 3 次)
  • 文件上传有 zip-slip 防护(路径规范化校验)

自托管插件安全

  • 开发者提供的 API Key 使用 AES-256-GCM 加密存储
  • 密钥仅在服务端解密使用,不暴露给前端用户
  • 日志中脱敏处理(仅记录前 4 位)
  • 启动时做即时健康检查,offline 插件拒绝加载
  • 生产环境强制 HTTPS

开发者安全责任

  • 验证所有输入参数
  • 所有数据按 user_id 隔离,不得跨用户访问
  • Token 仅在内存中使用,不得持久化存储
  • 不得将 Token 转发给第三方
  • 插件崩溃不得泄露用户数据

更多信息

HAMA | 蛤蟆数字