web-dev-qa-db-ja.com

サードパーティのAPIトークンをデータベースに保存する

現在、Node Spotify APIを使用するJSプロジェクトがあります。プロジェクトには、ユーザーがよくプレイしたアーティストとトラックが表示されます。認証コードフローに従ってアクセストークンを取得します。このアクセストークンは特定のエンドポイントをクエリして、プロジェクトで使用するデータのJSON応答を取得するために使用します。このトークンは1時間持続します。現在、このアクセストークンをCookieに保存し、このCookieを使用して新しいリクエストを作成しています。

私の質問は、これはセキュリティの観点から受け入れられるのですか?このトークンには、ユーザープロファイル設定を変更したり、機密データを読み取ったりする機能はありません。ただし、別の人がこのトークンを取得できた場合、これを使用して別のユーザーのデータを見ることができます。または、このアクセストークンをデータベースに格納し、必要なときにいつでもデータベースにアクセストークンを照会する方が安全でしょうか?

1
rsuresh27

Spotify APIとやり取りする必要のある同様のアプリケーションを開発しました。APIトークンを保存する方法は、脅威モデルによって異なります。私のアプリケーションでは、サーバー上にのみ存在する(したがって、ソースコードリポジトリから除外される)構成ファイルでトークンを維持することにしました。

シナリオでは、特定のアプリケーションに関連するユーザーのみが、構成ファイルが格納されているディレクトリにアクセス(読み取り/書き込み)できることを説明しました。私の脅威モデルでは、悪意のある攻撃者がサーバーにアクセスし、特権を特定のアプリケーションユーザーにエスカレートしてAPI資格情報を盗むリスク(私はLowと見なした)を受け入れます。

これにより、このようなシナリオをどのように考える必要があるかが明確になり、それが「安全」かどうかは、脅威モデルと想定されるリスクにのみ依存することを願っています。

APIキーをデータベースに保存することは、適切なセキュリティ対策(アクセス制御、暗号化、アーカイブ)が構成されていれば安全ですが、言及されたデータベースの技術的なリファレンスがないため、これは私の推測にすぎません。構成されています。

1