2016-07-07 17 views
3

現在、私はUSPS価格計算ツールAPIをリクエストするクライアントサイドのjavascriptアプリケーションを作成しています。このリクエストを行うには、リクエストのxmlにAPIユーザーIDを指定する必要があります。タグは次のようになります。 <RateV4Request USERID="ThisIsWhereMyUserIdGoes">私の質問はこれは:クライアント側のファイルを見ているユーザーからそれを隠しながら、私は自分のユーザーIDをjavascriptに提供することができる方法はありますか?今、私が持っている唯一の解決策は、ユーザIDを持つPHPファイルを私のサーバに作成し、クライアントサイドのJavaScriptでAJAXリクエストを使ってグローバル変数に保存することです。クライアントサイドのJavaScriptでAPIキーを非表示にする方法

var userID; 
$.get("/secrets.php", function(data) { 
     userID = data; 
}); 

これは、自分のアプリのユーザーがAPIユーザーIDを表示しないようにする適切な方法ですか?他に何ができますか?

答えて

4

要するに、いいえ、クライアント側のアプリでAPIキーを保護することはできません。

This article goes into some more detail

つのオプション

  • APIは、サーバー側の呼び出しを行うと、そこからクライアントに情報を提供
  • は、クライアントが自分のAPIキー
+0

2番目のオプションの操作方法は?誰かがそれをより詳細に記述することはできますか?クライアントが自分のapiキーをサーバー側に渡してサーバーがapiキーを確認できるようにする方法 –

5

PHPソリューションでも、あなたのuserIdを隠すことはできません。 consle.log(userId);にアクセスすると、ブラウザコンソールで簡単に印刷できます。私が知る限り、クライアント側で利用可能なものは脆弱であり、簡単に解読できます。あなたがあなたのapiキーを難読化したとしても、クライアント側からそれを解読することはできます。

適切なことは、キーを必要とするAPI呼び出しの周りにPHPラッパーを作成し、そのラッパーをJavascriptから呼び出すことです。

+0

さえを使用する必要だから、クライアントはまだサーバー側にapiキーを渡す必要がありますか?次に、WebページソースのJavaScriptコードのどこかに置くために、apiキーが必要ですか?私はここで誤解していますか? –

+0

いいえ、サーバー側でのみAPIキーを使用してください – shivgre

関連する問題