主导航

安全与隐私

Apps SDK 的安全与隐私考量。

原则

Apps SDK 使您的代码能够访问用户数据、第三方 API 以及执行写入操作。请将每个连接器视为生产环境软件来对待。

  • 最小权限原则 – 仅请求您所需的权限范围、存储访问权限和网络权限。
  • 明确的用户许可 – 确保用户在关联账户或授予写入权限时清楚知晓。针对可能具有破坏性的操作,应依赖 ChatGPT 的确认提示。
  • 纵深防御 – 假设提示注入(Prompt Injection)和恶意输入会到达您的服务器。验证所有内容并保留审计日志。

数据处理

  • 结构化内容 – 仅包含当前提示所需的数据。避免在组件属性(props)中嵌入密钥或令牌。
  • 存储 – 决定用户数据的留存期限,并发布数据保留政策。及时响应删除请求。
  • 日志记录 – 在写入日志前对个人身份信息(PII)进行脱敏处理。存储关联 ID 以用于调试,但在非必要情况下避免存储原始提示文本。

提示注入与写入操作

开发者模式支持完全的 MCP 访问权限,包括写入工具。请通过以下方式降低风险:

  • 定期审查工具描述,以防止误用(例如:“请勿用于删除记录”)。
  • 即使输入由模型提供,也要在服务器端验证所有输入。
  • 针对不可逆操作要求人工确认。

与您的 QA 团队分享用于测试注入的最佳提示词,以便尽早发现薄弱环节。

网络访问

微件(Widgets)运行在具有严格内容安全策略(CSP)的沙盒 iframe 中。它们无法访问受限的浏览器 API,例如 window.alertwindow.promptwindow.confirmnavigator.clipboard。只有在符合 CSP 的情况下,才允许标准的 fetch 请求。子框架(iframes)默认被阻止,仅在您在资源 CSP 元数据中明确允许时(例如 _meta.ui.csp.frameDomains)才可使用。如需将特定域名加入白名单,请联系您的 OpenAI 合作伙伴。

除您的托管环境所施加的限制外,服务器端代码没有额外的网络限制。请遵循针对出站调用的常规最佳实践(如 TLS 验证、重试机制、超时设置)。

身份验证与授权

  • 在集成外部账户时,请使用 OAuth 2.1 授权码流程。如果您的授权服务器支持 CIMD,且连接器创建者选择了该选项,则优先使用客户端 ID 元数据文档(CIMD)。对于公共客户端令牌交换,请使用 none;如果授权服务器需要客户端身份验证,请使用 private_key_jwt。当连接器创建者选择或 CIMD 不可用时,请支持 DCR。
  • 在每次调用工具时验证并强制执行作用域(scopes)。对于已过期或格式错误的令牌,应返回 401 响应。
  • 对于内置身份验证,避免存储长期有效的机密信息;应使用所提供的认证上下文(auth context)。

运营准备

  • 在上线前进行安全审查,特别是当您处理受监管的数据时。
  • 监控异常流量模式,并为重复出现的错误或失败的认证尝试设置警报。
  • 保持第三方依赖项(React、SDK、构建工具等)的更新,以降低供应链风险。

安全与隐私是用户信任的基础。请将它们融入到您的规划、实施和部署工作流程中,而不是作为事后的补救措施。

© . This website operates independently and is not affiliated with or endorsed by OpenAI, Inc. All brand names, logos, and trademarks are the property of their respective owners.