3

node.js と express.jsを使用して API をビルドしています。今のところ、誰でも GET、POST、PUT、DELETE レコードを実行できるセキュリティで保護されていない API があります。

次の問題に直面しています。私の残りのAPIは、ユーザーではなくアプリケーションを認証する必要があります。たとえば、モバイル アプリケーションには、API にアクセスするための有効なトークンが必要です。Web アプリケーションの場合も同様です。

別のユーザー ケース: 私の API は、単一の REST 呼び出しのみを使用する別のアプリケーションによって使用されます。そのため、コードのどこかで、私が知らないアプリケーションのどこかで (ほとんどの場合)、API の残りの呼び出しがトリガーされます。Cookie やセッションが含まれていないため、どうすればそのようなアクセスを保護できますか?

最初に考えたのは、ユーザーとパスワードを作成することでした。各 API 呼び出し (https 経由) には資格情報が含まれている必要があります。パスワードはハッシュ化される場合があります。しかし、私はこれを読んだ

ユーザー名とパスワード、セッション トークン、および API キーは、URL に表示しないでください。これは、Web サーバーのログに記録され、本質的に価値のあるものになる可能性があるためです。

https://www.owasp.org/index.php/REST_Security_Cheat_Sheetから

これに関する提案はありますか?私はoauthについて読みましたが、これにはリダイレクトが含まれており、Androidなどのモバイルアプリでこれがどのように機能するか想像できません.

4

2 に答える 2

2

これには RSA 暗号化を使用できます。ノードのursaモジュールを参照してください。
これを使用する簡単なプロセスは次のとおりです...クライアントアプリケーションを公開鍵で秘密のパスワードを暗号化し、サーバー側で秘密のパスワードで復号化し、秘密が期待どおりかどうかを確認し、それに応じて行動します...

アプリケーションでの rsa の使用に関する記事はたくさんあります。Google で検索すれば、rsa の操作方法に関するより明確な説明を見つけることができると確信しています。

編集私は、この質問に関するより詳細な記事があるこの投稿
にぶつかりました。

于 2013-10-05T19:10:05.173 に答える