2017-05-22 20 views
1

私はAngular 2アプリケーションを開発しています。私は私のサービスからいくつかのAPI呼び出しを行っていますが、私はキーを公開したくありません。Angular 2クライアント側アプリケーションでAPIキーを非表示/保護する方法は?

私は、バックエンドからのキーを使用することが望ましい方法ですが、確かにこれをフロントエンドから行う方法が必要であることを知っています。

私は、フロントエンドでAPIキーを効果的に非表示にする方法を研究していますが、その方法について十分に説明されていないリソースは見つかりませんでした。

これを行うにはどのような方法が最適ですか?

+0

どのAPIがキーですか?サービスがどのようにキーを提供するかによって、ここではいくつかのオプションがあります。 – joh04667

+1

私はいくつかのAPIを使っています:NewsApi、Bing News Api、およびEvent Registry API。 News ApiとEvent Registryの両方でURLにキーが必要ですが、Bing News APIではヘッダーとオプションが必要です。 – universesurfer

+0

これらのAPIの有料版を使用しますか? (つまり、あなたは鍵を購入しますか?) – joh04667

答えて

2

まあ、実際には何かは、HTTPコールで使用される情報を含むクライアントに送信され、リバースエンジニアリングすることができます。 URLにAPIキーを持つことは、それ自身の性質上、不明瞭にならないようにします。これをクライアントから完全に隠す唯一の真の方法は、あなたが言及したように、バックエンドにそれを保持することです。あなたができることは、環境変数で暗号化し、送信する前にアプリを解読させるなど、トレースするのが難しくなりますが、それでもプレーンテキストのHTTP呼び出しになります。

あなたのコメントで言及したAPIはpublic APIなので、本当に非表示にする必要はありません。彼らが提供する情報は、最初から公開されています。だれかが本当にAPIキーを必要としていたとしても、そのAPIキーにサインアップできます。キーは、主にサービス自体によって使用状況を追跡するために使用されます。サービスを購入してもサービスが難読化メソッド(セッショントラッキング/クッキー)を提供していない場合は、バックエンドを通じてそれを軽減する必要があります。

あなたの頭は正しい場所にありますが、この場合は必要なステップのようには見えません。

+1

多くのありがとう - それは感謝しています... – universesurfer

関連する問題