概要
frontend/src/lib/client.ts でエクスポートされているAPIクライアントのシングルトンインスタンスを廃止し、セッションリーク脆弱性を解消します。
課題
Next.jsのサーバーサイド実行時(Server Components / Route Handlers / Server Actions)において、複数ユーザーの並行リクエストが同一のメモリ空間を共有するため、シングルトンの認証ヘッダーが他人のトークンで上書きされ、セッションリークが発生するリスクがあります。
対応方針
- シングルトンの直接エクスポートを廃止
- リクエストヘッダーからCookie/トークンを受け取ってインスタンスを動的生成するファクトリパターン(
createApiClient)への移行
- Reactの
cache を用いたリクエストスコープ限定のシングルトン化の導入
概要
frontend/src/lib/client.tsでエクスポートされているAPIクライアントのシングルトンインスタンスを廃止し、セッションリーク脆弱性を解消します。課題
Next.jsのサーバーサイド実行時(Server Components / Route Handlers / Server Actions)において、複数ユーザーの並行リクエストが同一のメモリ空間を共有するため、シングルトンの認証ヘッダーが他人のトークンで上書きされ、セッションリークが発生するリスクがあります。
対応方針
createApiClient)への移行cacheを用いたリクエストスコープ限定のシングルトン化の導入