私はAPIを構築しています、私は、URL要求は次のように呼び出されます、APIキーを使用する予定どのように安全にするか?RESTful APIのAPIキー暗号化?</p> <p><a href="http://myapi.com/apikey=mykey" rel="nofollow noreferrer">http://myapi.com/apikey=mykey</a></p> <p>しかし、この場合には、ウェブクローラを使用して、人々はAPIキーを見ることができるので、私は疑問に思う:
0
は
A
答えて
1
認証が必要なAPIを構築する場合、通常、ユーザーごとに固有のキーを割り当てます。その使用方法を知っておく必要があります。通常、最善のアプローチは、サーバーコール(たとえば、C#クライアントを使用してAPIに接続する代わりに、ページ上の誰でもキーを読み取ることができるjavascriptを使用して)を使用してAPIを呼び出す方法です。 javascriptコードにAPIキーを格納するようなことは避けますが、javascriptの直接呼び出しでAPIキーをやりたいのであれば、もう一度やります。それでも、Muraliが提案したように、ヘッダーはURLパラメータよりもはるかに優れていると思います。少なくともそのようにすると、URLを見ているユーザーにとってキーが完全に見えなくなります。
また、途中の人が心配な場合は、HTTPS経由でのみアクセスできるようにAPIを設定する必要があります。その場合、すべての通信が暗号化され、 APIキーを知っている(暗号部分が正しく設定されていると仮定して)。
一時的なキーをより洗練された方法で使用したい場合は、いつでもOAuth2をご覧ください。簡単に言えば、認証サーバーを設定してAPIコンシューマの秘密識別子を提供し、APIの一時キーを作成することができます。そのため、APIキーのいずれかが侵害されても、その鍵は数時間後に更新されるため(設定に応じて多かれ少なかれ)、消費者はOAuth資格情報を保護する必要があります。これらの資格情報は新しい鍵を要求できるからです)。
関連する問題
- 1. VSTSノードAPI - 、特に<a href="https://github.com/Microsoft/vsts-node-api/blob/master/api/IdentitiesApi.ts" rel="nofollow noreferrer">Identities API</a> - 私は<a href="https://github.com/Microsoft/vsts-node-api/" rel="nofollow noreferrer">VSTS Node Api</a>といくつかの問題を抱えているアイデンティティAPI
- 2. Akkaの俳優システムでtell()はどのように機能しますか?ドキュメント<a href="http://doc.akka.io/api/akka/2.4/#akka.actor.Actor" rel="nofollow noreferrer">here</a>と<a href="http://doc.akka.io/api/akka/2.4/#akka.actor.ActorRef" rel="nofollow noreferrer">here</a></p> <p>を見
- 3. は、私が<a href="https://console.developers.google.com/apis/api/plus/overview?project=store-client-ids" rel="nofollow noreferrer">API Manager</a>でGoogle+ APIを有効にしようとしている
- 4. <a href="https://developer.github.com/v3/repos/" rel="nofollow">GitHub repository API</a>に見るとGitHubのRESTのAPI
- 5. ウルフラムアルファのAPIラッパーは、それがVB.NETで書かれており、バージョン1.0のために書かれていますしかし、私はこの場所</p> <p><a href="http://products.wolframalpha.com/api/libraries.html" rel="nofollow">http://products.wolframalpha.com/api/libraries.html</a></p> <p>で.NETのウルフラムアルファのAPIのラッパーを使用しているC#
- 6. この<a href="http://www.programcreek.com/java-api-examples/index.php?api=android.security.keystore.KeyProperties" rel="nofollow">sample</a>によるAndroidKeyStore
- 7. 私は<strong><a href="https://github.com/carhartl/jquery-cookie" rel="nofollow">jquery cookie</a></strong>プラグインを使用して、ここに私のコードです名前
- 8. API「の人々はまた、検索する」 - 、<a href="https://developers.google.com/freebase/" rel="nofollow noreferrer">Freebase API</a>としてのAndroid
- 9. PGTとPGTIOUの保存CASが生成する
- 10. 検索私は<a href="https://developers.google.com/gmail/api/" rel="nofollow noreferrer">GMail Api</a>を使用しているGmailのAPI
- 11. EPAのBEACONにはAPIがありますか?私は、このページには、実際のデータを引っ張ることをどこでも見つけることができないよう、しかし</p> <p><a href="http://iaspub.epa.gov/waters10/beacon_national_page.main" rel="nofollow">http://iaspub.epa.gov/waters10/beacon_national_page.main</a></p> <p>:
- 12. アマゾンS3は:アップロードが<a href="http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html" rel="nofollow">http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html</a>で
- 13. はどのように正しく<a href="https://documentation.mailgun.com/api-sending.html#examples" rel="nofollow noreferrer">https://documentation.mailgun.com/api-sending.html#examples</a></p> <p>でAPIの例を提供し、私はMIMEメッセージbody.Mailgunでmailgun APIをテストしていFormDataMultiPart
- 14. このコマンドで起動し、私は<a href="https://hub.docker.com/_/mysql/" rel="nofollow noreferrer">mysql image</a>を使用
- 15. ウィキデータ:SPARQL、私は<a href="https://query.wikidata.org/" rel="nofollow noreferrer">https://query.wikidata.org/</a>でこのクエリを使用し
- 16. <a href="https://developer.xamarin.com/api/type/Xamarin.Forms.WebView/" rel="nofollow">this example</a>をテストしようとすると、Xamarin
- 17. は、私はSFTPを使用してファイルを転送する<a href="http://www.zehon.com/features.htm" rel="nofollow">Zehon SFTP client</a>を使用していZehonのSFTP API
- 18. はTypeError:、私は私のミスです<a href="http://getfirebug.com/" rel="nofollow noreferrer">Firebug</a></p> <p>と、このエラーが出るのdocument.getElementById(...)は、JavaScriptの
- 19. 私は<a href="http://luracast.com/products/restler/" rel="nofollow">Restler</a> PHPのAPIを使用しようとしてきたRestlerが
- 20. Angular2:</p> <p><a href="https://angular.io/docs/ts/latest/api/common/index/NgSwitch-directive.html" rel="nofollow noreferrer">https://angular.io/docs/ts/latest/api/common/index/NgSwitch-directive.html</a></p> <p>、これは私がNG-スイッチを使用しています方法です:
- 21. は、APIのカテゴリは、私がこのようrest_prepare_postフィルタを使用して</p> <p><a href="http://demo.wp-api.org/wp-json/wp/v2/posts" rel="nofollow noreferrer">http://demo.wp-api.org/wp-json/wp/v2/posts</a></p> <p>すなわちAPI POSTリクエストをwpでするフィールドを追加することができる午前
- 22. mailjetのREST API/sendは私が<a href="https://dev.mailjet.com/" rel="nofollow">https://dev.mailjet.com/</a>からコンソールでこの例を試してみました
- 23. は、それは私がリンク <a href="https://www.twilio.com/docs/api/voice/making-calls" rel="nofollow noreferrer">https://www.twilio.com/docs/api/voice/making-calls</a></p> <p>から次のコードで番号を呼び出すことができる午前次のコード
- 24. iOSの<a href="http://developer.apple.com/library/ios/navigation/" rel="nofollow">API</a>でのiOS API
- 25. 私は(<a href="http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/" rel="nofollow">API library</a>で)CodeIgniterのフレームワークを使用してPHPでAPIを構築しています、と私は簡単な質問のカップルを持っているAPI
- 26. GoogleドライブAPI私は(のOAuth2経由<strong>ユーザー</strong>をしませ認証するためにリフレッシュトークンを使用してい<a href="https://developers.google.com/api-client-library/php/start/get_started" rel="nofollow">PHP SDK for the Google Drive API</a></li> <li>を使用するには、私のプロジェクトの設定をしました
- 27. がどのようにGoogle MapsのAPI <a href="https://angular-maps.com/" rel="nofollow noreferrer">https://angular-maps.com/</a>を使用してGoogleマップAPIで
- 28. <a href="http://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot" rel="nofollow">boxplot API page</a>を見てみると、「ラベル」欄
- 29. Googleクラウドスパナ:新しい<a href="https://cloud.google.com/spanner/" rel="nofollow noreferrer">Google Cloud Spanner</a>サービスを見てみると</p> <p>...これは本当に<a href="https://cloud.google.com/spanner/" rel="nofollow noreferrer">Google Cloud Spanner</a>のJava APIチームへの質問である私自身の再試行
- 30. 我々は特定のグループ</p> <p><a href="https://developers.facebook.com/docs/graph-api/reference/v2.7/group/feed" rel="nofollow">https://developers.facebook.com/docs/graph-api/reference/v2.7/group/feed</a></p> <p>からの投稿を取得することができ、グループ/給紙方法を使用してFacebookのAPI
ヘッダーとして送信することを検討する必要があります。 – Murali
でもヘッダーはまだ見えますか? – ywj7931
[こちら](https://security.stackexchange.com/a/153144/141234)はこれに対する答えです。 – Programmer