For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme
概要 ChatGPT と Codex のユーザー向けドキュメント ユースケース

セキュリティとプライバシー

プラグインのセキュリティとプライバシーに関する考慮事項。

基本原則

プラグインのツールは、ユーザーデータやサードパーティの API にアクセスし、書き込み操作を実行できます。すべての MCP サーバーと UI コンポーネントを本番環境で稼働するソフトウェアとして扱ってください。

  • 最小権限: 要求するスコープ、ストレージへのアクセス権、ネットワーク権限は、必要なものに限定してください。
  • ユーザーの明示的な同意: アカウントを連携するときや書き込み権限を付与するときは、ユーザー自身が何に同意するのかを理解できるようにしてください。破壊的な操作には、ホストの確認プロンプトを使用してください。
  • 多層防御: プロンプトインジェクションや悪意のある入力がサーバーに届くことを前提にしてください。すべての入力を検証し、監査ログを残してください。

データの取り扱い

  • 構造化コンテンツ: 現在のプロンプトに必要なデータだけを含めてください。コンポーネントの props にシークレットやトークンを埋め込むことは避けてください。
  • ストレージ: ユーザーデータの保持期間を定め、保持ポリシーを公開してください。データの削除依頼に応じてください。
  • ログ記録: ログに書き込む前に、個人を特定できる情報(PII)をマスキングしてください。デバッグ用に相関 ID を保存し、必要な場合を除いてプロンプトの原文の保存は避けてください。

プロンプトインジェクションと書き込み操作

カスタム MCP サーバーでは、書き込みツールを含む MCP のすべての機能を利用できます。リスクを軽減するため、次の対策を講じてください。

  • ツールの説明を定期的に見直し、「レコードの削除には使用しないでください」などの注意書きで誤用を防いでください。
  • モデルが提供した入力も含め、すべての入力をサーバー側で検証してください。
  • 取り消せない操作には、人による確認を必須にしてください。

プロンプトインジェクションのテストに特に有効なプロンプトを QA チームと共有し、弱点を早い段階で検証できるようにしてください。

ネットワークアクセス

ウィジェットは、厳格なコンテンツセキュリティポリシー(CSP)が適用された隔離環境の iframe 内で動作します。window.alert、window.prompt、window.confirm、navigator.clipboard などの特権ブラウザ API にはアクセスできません。標準の fetch リクエストは CSP によって制御されます。ネストされたフレームはデフォルトでは使用できません。使用するには、_meta.ui.csp.frameDomains などのリソースの CSP メタデータで、必要なオリジンを個別に許可してください。プラグインには、その MCP サーバーと同じ登録可能ドメインにあるページを埋め込むことができます。既存のエディターや管理画面も対象です。ドメインの所有権、埋め込みが必要な理由の説明、レビュー要件については、iframe ポリシーを参照してください。

ウィジェットの CSP は、iframe に読み込めるページの URL を制限します。埋め込まれたページには、そのページ独自の CSP が適用されます。ウィジェットの connectDomains と resourceDomains の許可リストは、そのページ内から送信されるネットワークリクエストには適用されません。iframe に許可するオリジンは個別に指定し、埋め込んだページとその機能もセキュリティレビューの対象にしてください。

サーバー側のコードに適用されるネットワーク制限は、ホスティング環境が課すものだけです。外部へのリクエストでは、TLS 検証、リトライ、タイムアウトなど、一般的なベストプラクティスに従ってください。

認証と認可

  • 外部アカウントを連携する際は、OAuth 2.1 の認可コードフローを使用してください。認可サーバーがクライアント ID メタデータドキュメント(CIMD)に対応し、プラグイン作成者が CIMD を選択した場合は、CIMD を優先してください。パブリッククライアントのトークン交換には none を使用し、認可サーバーがクライアント認証を要求する場合は private_key_jwt を使用してください。プラグイン作成者が DCR を選択した場合、または CIMD を利用できない場合は、DCR に対応してください。
  • ツールを呼び出すたびにスコープを検証し、許可された範囲内でのみ操作を実行してください。トークンの有効期限が切れている場合や形式が正しくない場合は、401 レスポンスを返してください。
  • 組み込みの ID 機能を利用する場合は、有効期間の長いシークレットの保存を避け、提供される認証コンテキストを使用してください。

運用準備

  • リリース前にセキュリティレビューを実施してください。規制対象のデータを扱う場合は特に重要です。
  • トラフィックに異常なパターンがないか監視し、エラーが繰り返されたときや認証に失敗したときにアラートが届くよう設定してください。
  • サプライチェーンのリスクを軽減するため、サードパーティの依存関係、ライブラリ、ビルドツールには最新のパッチを適用してください。

セキュリティとプライバシーは、ユーザーの信頼の基盤です。対応を後回しにせず、計画、実装、デプロイの各工程に最初から組み込んでください。