HTTP POSTはどれくらい安全ですか?
-
06-07-2019 - |
質問
ログイン資格情報を送信するのに十分なPOSTは安全ですか?
またはSSL接続は必須ですか?
解決
SSLは必須です。 POSTは暗号化されずに送信されるため、GETより安全ではありません<!>#8217; s。 SSLはHTTP通信全体をカバーし、クライアントとサーバー間で送信されるHTTPデータを暗号化します。
他のヒント
<shameless plug>
ブログ投稿があるHTTPリクエストがどのように見えるか、GETリクエストがPOSTリクエストとどのように比較されるかを詳しく説明します。簡潔にするために、GET:
GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
およびPOST:
POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123
(CRLFは単なる改行です)
ご覧のように、リクエストがどのように形成される*という観点からの唯一の違いは、POSTリクエストが単語POSTを使用し、フォームデータがリクエストの本文とURIで送信されることです。したがって、HTTP POSTの使用は、あいまいさによるセキュリティです。データを保護する場合は、SSLを使用する必要があります。
*
その他の違い。
それはあなたの状況に依存しますが、資格情報の傍受は誰かにどれくらいの費用がかかりますか?
ソフトウェアのQ + Aサイトへのログインだけの場合、SSLは必要ないかもしれません。オンラインバンキングサイトの場合、またはクレジットカードデータを保存している場合はSSLです。
これは技術的な決定ではなくビジネスです。
HTTP POSTは暗号化されていないため、ネットワークスニファー、プロキシ、またはカスタマイズされたログレベルでサーバーのログに漏洩する可能性があります。はい、POSTはGETよりも優れています。POSTデータはプロキシまたはサーバーによって通常ログに記録されないが、安全ではないためです。 パスワードまたはその他の機密データを保護するには、POSTの前にSSLを使用するか、データを暗号化する必要があります。別のオプションは、ブラウザーでダイジェスト認証を使用することです(RFC 2617を参照)。 (自作の)暗号化はリプレイ攻撃を防ぐのに十分ではないことを忘れないでください、暗号化する前にノンスと他のデータ(例:レルム)を連結する必要があります(ダイジェスト認証で行われる方法についてはRFC 2617を参照してください)。
SSLは必須です:)
HTTPポストはプレーンテキストで送信されます。たとえば、Fiddlerをダウンロードして使用し、HTTPトラフィックを監視します。そこに投稿全体を簡単に表示できます(またはWireSharkなどのネットワークトラフィックモニターを使用)
安全ではありません。 POSTはGETと同じくらい簡単にスニッフィングできます。
いいえ... POSTはまったく安全ではありません。 SSLは必須です。
POSTは、クエリ文字列のパラメーターのみを効果的に非表示にします。これらのパラメーターは、ブラウザーとエンドポイントの間のトラフィックを見る誰でも引き続き取得できます。
最も安全な方法は、資格情報をまったく送信しないことです。
ダイジェスト認証を使用する場合、SSLは NOT です必須です。
(注:HTTPを介したダイジェスト認証は、HTTPSを介したPOSTを使用するよりも常に安全であることを意味するわけではありません)。
POSTはプレーンテキストです。
安全な接続は必須です。
だからこそ、セキュア接続と呼ばれています。
いいえ、SSLを使用します。
POSTでは、SSLを使用しない限り、値はプレーンテキストとして送信されます。
HTTP GETとHTTP POSTの唯一の違いは、データのエンコード方法です。どちらの場合も、プレーンテキストとして送信されます。
ログイン資格情報に何らかのセキュリティを提供するには、HTTPSが必須です。
HTTPSを提供するために高価な証明書も必要ありません。約20米ドルで非常に基本的な証明書を発行するプロバイダーは多数あります。より高価なものには、電子商取引サイトにとってより重要な本人確認が含まれます。
すべてのデータが<!> quot; traveling <!> quot;であるため、POST要求だけでは安全ではありません。プレーンテキスト。
安全にするためにSSLが必要です。
POSTデータは、暗号化されていないHTTP接続を使用している場合、プレーンテキストで送信されます。 これが十分に安全であるかどうかは、使用法によって異なります(ヒント:安全ではありません)。
サーバー、クライアントマシン、およびそれらの間のすべてのマシンの両方が、制御された完全に信頼されたネットワークの一部である場合、これは問題ありません。
これらの非常に限られた状況の外側(場合によってはその中でさえ)プレーンテキスト認証では問題が発生します。