API keyをアプリケーションに含みたい
疑問です
APIkeyをアプリケーションで扱いたい場合アプリケーション側に直にkeyを保存したら抜かれるのは当然ですが、仮に何らかの方法でサーバーからapikeyだったりapikeyの複合keyを安全に受け取ることができても、結局メモリ上に生のapikeyが一時的にでも展開されたら意味がないと思うのですがどうなのでしょう
0
APIkeyをアプリケーションで扱いたい場合アプリケーション側に直にkeyを保存したら抜かれるのは当然ですが、仮に何らかの方法でサーバーからapikeyだったりapikeyの複合keyを安全に受け取ることができても、結局メモリ上に生のapikeyが一時的にでも展開されたら意味がないと思うのですがどうなのでしょう
はい。意味がありません。
ですから、そのような危険を避けたいと思うなら、「漏れたらサービス全体に影響が出るような共通の外部APIキーを個々のユーザーのアプリケーション(クライアント)で扱わせるような設計」自体がナンセンスということです。
ではどうすればよいかというと、たとえばサービス全体で使用する共通の外部APIキーは、ユーザーのクライアントに渡して使わせるのではなく、サーバー内でのみ使用し、ユーザー(クライアント)に対しては結果だけを返すという仕組みになります。
この場合、クライアント⇔サーバー間は、共通外部APIキーとは別のキーでクライアントごとに個別に認証・認可を行えばよいです。
クライアントごとのキーを使ってサービスの使用量を管理する仕組みを作れば、仮にそのキーがメモリに残っていて読み取られたとしても、それは結局そのクライアントにしか影響が出ず、サービス全体には影響しません。