ソルトHTTPコールバックが選ばれる理由







クラウドサービスの中には、通知のために双方向通信を必要とするものがあります。長時間の操作の終了をバックエンドに通知する、発生したエラーを表示する、有料サービスのバランスが悪いことを警告する、などです。 また、HTTPリクエストを使用してサービスと通信することに慣れている場合は、逆方向に多くのオプションがあります。10分ごとに1回のステータスチェックから、リアルタイム通知を使用したWebSocketまたはHTTP / 2接続の継続です。 最も簡単な方法はHTTPコールバックです。 管理領域でバックエンドURLを設定すると、興味深いイベントが発生した場合にクラウドサービスが、リクエスト本文に追加情報を含むこのURLへのHTTPリクエストを作成します。 シンプルさの欠点はセキュリティです。 悪意のあるハッカーVasyaではなく、クラウドサービスによってリクエストが具体的に行われたことを確認する方法は? カットの下のいくつかの方法。



トークンの転送と検証



最も簡単な方法の中の最も簡単な方法:管理パネルで、クラウドサービスが各リクエストで送信するトークン(GUIDなど)を設定または生成します。 そして、バックエンド側で、このトークンをチェックするだけです。



明らかなマイナス:攻撃者がサービス間のトラフィックを盗聴した場合、彼はトークンを認識し、サービスに代わってリクエストを行うことができます。 HTTPSはこれを防ぎますが、いくつかの微妙な違いがあります。 たとえば、サーバー間のトラフィックは、速度を上げるために暗号化されない場合があります。 または、VPNなしでStarbucksに座って、ローカルマシンでバックエンドをデバッグできます。 ワイルドに聞こえますが、すべては人生で起こります。



バックエンド側のHTTP認証



検証がコードからリクエストの処理に使用するWebサーバーのレベルに転送されるという点でのみトークンと異なります。 ログインとパスワードをnginx / expressjs / Django / Rails /などに設定します。これらはクラウドサービスの管理パネルにあり、その後すべてのチェックが自動的に行われます。 ただし、まったく同じ方法でパスワードを使ってログインを盗聴することができます。HTTPSには、「ローカルで1分間しかデバッグできない」という接続を切断するという不快な機能があります。



IPフィルタリング



httpコールバックのURLのリクエストが特定のIPアドレスからのみ許可されている場合、ハッカーはそのようなリクエストの整理に大きな問題を抱えています。 これが不可能だったわけではありません(答えが不要な場合は、必要なTCPパケットのシーケンスを編成できます)が、技術的には難しいです。 ここでの待ち伏せは異なります-クラウドサービスはリクエストの送信元である多くのIPアドレスを持つことができるため、単純な実装ではそのような保護があまり信頼できず、信頼性が必要な場合は複雑すぎます。



塩を使用したMD5署名



Voximplantで使用する共有シークレットを使用したバランスの良い方法。 管理パネルで任意のテキスト文字列が設定され(GUIDがうまく機能する「暗号化ソルト」)、その後、Voximplantクラウドは各リクエストに対して、アカウントデータ、リクエスト、ソルトからMD5ハッシュを考慮します。 バックエンド側では、ソルトを知っているので、ハッシュを計算し、リクエストで指定されたハッシュと比較することもできます。 一致する場合、すべてが正常です。 そうでない場合は、ハッカーも訪問する本当に人気のあるサービスを作成したことを祝福できます。







もっと方法は?



大規模なプロジェクトのHTTP APIで実際に使用されている保護の簡単な方法のみを説明しました。 他に面白いものを見ましたか? コメントで共有し、感謝します!



All Articles