Skip to content

v2.53.0

Choose a tag to compare

@tegnike tegnike released this 01 Jul 15:02
27e5d8e

⚠️ セキュリティに関する重要な注意事項

v2.53.0 では、公開APIからサーバー側秘匿値やサーバー設定リソースを利用する場合の保護を強化しました。

OPENAI_API_KEYCUSTOM_API_* などのサーバー側秘匿値、チャットログ保存、サーバー側TTS URLなどを公開環境で使う場合は、AITUBERKIT_SERVER_SECRET_ACCESS_MODE の設定が必要です。未設定のままでは、一部APIは安全のため 403 で拒否されます。

移行時は用途に応じて次のいずれかを設定してください。

  • protected: AITUBERKIT_SERVER_SECRET_TOKEN を設定し、API呼び出し時に Authorization: Bearer <token> を付与してください。
  • demo: AITUBERKIT_DEMO_ACCESS_TOKEN と許可Originを設定し、デモ用途向けの制限付きアクセスとして使ってください。
  • unprotected: ローカル環境や信頼できる閉じた環境に限定してください。公開環境では推奨しません。
  • disabled: デフォルトです。リクエスト側のAPIキー利用は許可し、サーバー側秘匿値や保護対象リソースの利用は拒否します。

利用者が各自のAPIキーをブラウザ設定から使う通常構成では、この変更による追加設定は基本的に不要です。

設定の詳細は以下を参照してください。

改善

  • サーバー側秘匿キーやサーバー設定リソースを利用するAPIに、アクセス制御を追加しました。
    • AITUBERKIT_SERVER_SECRET_ACCESS_MODE による disabled / protected / demo / unprotected のモード制御に対応しました。
    • protected モードではBearerトークン、demo モードでは許可Origin・demoトークン・簡易レート制限を使ってアクセスを制御できるようにしました。
  • AI / TTS / STT / Embedding / Custom API / YouTube会話継続 / チャットログ保存 / 話者更新系のAPIで、サーバー側秘匿値やサーバーリソース利用時にガードを通すようにしました。
  • Custom APIのストリーミングで、reasoningやprovider metadataの転送をデフォルトで抑制するようにしました。
  • Cloudflareデプロイワークフローで、公開環境変数追記用の処理を削除し、環境ファイルの扱いを簡素化しました。

バグ修正

  • save-chat-logtargetFileName を検証し、パストラバーサルにつながる不正なファイル名を拒否するようにしました。
  • VOICEVOX / AivisSpeech のサーバーURLを検証し、不正なURLや非HTTP(S)プロトコルを拒否するようにしました。
  • Azure OpenAIのエンドポイント・デプロイメント名処理で、サーバー側設定値を使う場合にもAPI保護を適用するようにしました。

テスト

  • serverSecretGuard のアクセスモード、Bearerトークン、demoトークン、許可Origin、レート制限、プロキシヘッダー処理をテストしました。
  • Custom API、AI、Embedding、TTS、話者更新、YouTube会話継続、チャットログ保存など、保護対象APIのテストを追加しました。

ドキュメント・翻訳

  • .env.exampleAITUBERKIT_SERVER_SECRET_ACCESS_MODE などのサーバー側秘匿キー保護設定を追加しました。
  • READMEと各言語READMEに、公開APIからサーバー側秘匿キーを使う場合の保護設定と v2.53.0 リリースノートへの案内を追加しました。