現在、私はUSPS Price Calculator APIにリクエストを行うクライアント側のjavascriptアプリを書いています。このリクエストを行うには、リクエストのxmlでAPIユーザーIDを提供する必要があります。タグは次のようになります:<RateV4Request USERID="ThisIsWhereMyUserIdGoes">
。私の質問はこれです:クライアント側のファイルを見るユーザーからは隠しながら、ユーザーIDをJavaScriptに提供する方法はありますか?現在、私が持っている唯一の解決策は、ユーザーIDを持つPHPファイルをサーバーに作成し、次にクライアントでAJAXリクエストを使用することです。それをグローバル変数に保存するためのサイドJavaScript。次のようになります。
var userID;
$.get("/secrets.php", function( data ) {
userID = data;
});
これは、APIユーザーIDがアプリのユーザーに表示されないようにする適切な方法ですか?他に何ができますか?
つまり、いいえ、クライアント側アプリでAPIキーを保護することはできません。
2つのオプション
PHPソリューションを使用している場合でも、userIdを非表示にすることはできません。consle.log(userId);
にアクセスして、ブラウザコンソールで簡単に印刷できます。クライアント側は脆弱であり、簡単にデコードできます。APIキーを難読化した場合でも、クライアント側からデコードできます。
正しいことは、キーを必要とするAPI呼び出しの周りにPHPラッパーを作成し、Javascriptからそのラッパーを呼び出すことです。