1

ビルドしようとしているものに最適なソリューションを決定する際に、いくつか問題があります。サーバーとサーバー間の通信を確認する方法

最も簡単なアプリケーションでは、フロントエンドサーバーを使用して、ユーザーが自分のアカウントに関連付けられているファイル(ビデオや画像など)をアップロードできるようにします。アップロードファイル形式はアップロード要求をフロントエンドサーバーに送信し、フロントエンドサーバーはリバースプロキシを使用してストレージサーバーのAPI()に直接要求を渡します。

私が現在取り組んでいるのは、ストレージサーバAPIで受信されたリクエストが実際にフロントエンドサーバからリバースプロキシから送信されていることを確認する最良の方法を試すことです。ストレージサーバのAPIエンドポイントにダイレクトポストリクエストを送信するだけの人。

本当にありがとうございます。

+0

フロントエンドサーバーから何らかのトークンを送信して、要求が正しいサーバーからのものであることを認証できます。 –

+0

ねえ@DhanushGopinath、あなたの返事をありがとう。私は以前、同じクライアントのセッション上でストレージサーバの側で検証されるCSRFトークンを作成するセッションを作成しましたが、実際のものを渡す前にトークンを作成してtcpで送信するほうが良いでしょうストレージサーバからの正しいトークンを含むACKを待って、それが正しい場合にのみ、ファイルのアップロード要求をプロキシしますか? –

+0

私はあなたが言及した最初のやり方です。そして私はそれを認証するHTTPハンドラを書いて、それが有効である場合にのみ、実際のハンドラにリクエストを渡します。 2つ目の方法は、各コールが毎回2つの要求を送信する必要があるという点を除いては問題ありません。 –

答えて

0

それを行うには、複数の方法があります。

  1. あなたがAPIゲートウェイ(例えばAPIGEE、AWS AIゲートウェイなど)を使用することができます。ゲートウェイは要求元の検証を行うことができます。
  2. あなたは(ストレージ・サーバー用)のOAuthを使用して、ストレージサーバで認証/許可を取得する を使用するには、フロントエンド・アプリケーションを聞かせすることができます
  3. あなたはソース
  4. にIPアドレスの制限されたセットを許可し&サーバー間のIPホワイトリストを行うことができます
  5. あなたは、これらは単純です

(直接あなたの問題のためではないかもしれないが、組み合わせて使用​​することができます)アクセスあなたのAPIを検証していることを確認のみのクライアントを作るために/ワットのサーバbのMASSL(相互Authenthicated SSL)を使用することができます複雑で高価なソリューションを必要としない場合は、オプションを選択します。

+0

ちょっと@Virgo、コメントありがとう!私はすでにストレージサーバがフォームを通じてデータを送信されているので、セッションでCSRF予防を実装しましたが、IPホワイトリストを使用するというアイデアは以前から考えられていました。素晴らしい提案、多くの感謝! –

関連する問題