Axios Cache Interceptorは、axios用のキャッシュインターセプターです。バージョン1.11.1以前では、サーバーが異なる認証トークンでアップストリームサービスを呼び出す場合、axios-cache-interceptorが誤ったキャッシュレスポンスを返してしまい、認可のバイパスが発生します。キャッシュキーはURLのみから生成され、`Authorization`などのリクエストヘッダーが無視されます。サーバーが`Vary: Authorization`(レスポンスが認証トークンごとに変化することを示す)で応答しても、このライブラリはその指示を無視し、すべてのリクエストが認証に関係なく同じキャッシュを共有してしまいます。axios-cache-interceptorを利用して複数ユーザー(異なる認証トークン)からのリクエストを処理し、アップストリームサービスが`Vary`ヘッダーでキャッシュを識別するサーバーサイドアプリケーション(APIやプロキシ、バックエンドサービスなど)がこの問題の影響を受けます。一方、ブラウザーやクライアントサイドアプリケーション(1ブラウザーセッションにつき1ユーザー)にはこの問題の影響がありません。異なる認証トークンでアップストリームサービスを呼び出すサービスでは、不正なキャッシュデータが返されることで認可チェックが回避され、ユーザーデータが異なる認証セッション間で漏洩する可能性があります。v1.11.1以降では、自動的に`Vary`ヘッダーサポートがデフォルトで有効となりました。サーバーが`Vary: Authorization`で応答すると、キャッシュキーに認証ヘッダー値が含まれるようになり、各ユーザーごとに独自のキャッシュが割り当てられるようになりました。
|