GETとPOSTデータを暗号化するときの違いは何ですか?答えのためのThx
編集:私はそれをより具体的に書く必要があります。
Https-SSLがこの両方の方法を暗号化する場合、ブラウザーがこれを行う方法の違いは何ですか。暗号化されている部分と暗号化されていない部分はどれですか?どこかで、宛先URLがPOSTで暗号化されていないことを読みましたが、それは本当ですか? GETでそれが真で同じである場合、すべてのパラメーターはどこにありますか?
Edit2:まだ私の質問の答えがわかりません。両方の方法が同じデータで暗号化されている場合、スニッフィングされたときの外観は同じですか?暗号化されている部分と暗号化されていない部分はどれですか?
[〜#〜] get [〜#〜]データはURLに追加されますクエリ文字列として:
https://example.com/index.html?user=admin&password=whoops
データはURLに追加されるため、転送できるデータの量には厳しい制限があります。ブラウザによって制限は異なりますが、1KB〜2KBのマーク付近で問題が発生し始めます。
[〜#〜] post [〜#〜]データはHTTPリクエストの本文に含まれていますそしてURLには表示されません。そのため、POSTを介して転送できるデータの量に制限はありません。
HTTP接続がSSL/TLSを使用している場合、GETパラメーターも暗号化されますが、Webサーバーログなどの他の場所に表示される可能性があります。ブラウザプラグインや、場合によっては他のアプリケーションにもアクセスできます。 POSTデータは暗号化され、他の方法でリークすることはありません。
Googleディスカッション から:
HTTPS接続のURLクエリに含まれるデータは暗号化されます。ただし、「GET」リクエストにパスワードなどの機密データを含めることは非常に悪い習慣です。傍受することはできませんが、データは受信側のHTTPSサーバーのプレーンテキストサーバーログに記録され、ブラウザの履歴にも記録される可能性があります。おそらく、ブラウザプラグインや、場合によってはクライアントコンピュータ上の他のアプリケーションでも利用できます。
情報を安全に転送したい場合は、常に使用POST HTTPS経由)。
暗号化ライブラリを使用してデータを暗号化する場合は、GETまたはPOSTを使用できますが、これは追加の問題であり、暗号化を正しく設定できない可能性があるため、引き続き使用することをお勧めしますPOST HTTPS経由、独自の暗号化設定をロールするのではなく、この問題はすでに解決されています。車輪の再発明をしないでください。
検討したいもう1つのオプションは、セキュアCookieを使用することです。セキュアフラグが設定されたCookieは、HTTPSなどのセキュアチャネルを介してのみ送信され、スニッフィングできません。これは、セッションIDなどの情報を安全に保持するための良い方法です。
HTTPS GETリクエストが行われると、クエリ文字列パラメータが暗号化されます! HTTPSリクエストで暗号化されないのは、リクエストのサーバー名またはIPアドレスとポートだけです。これらは、ブラウザからWebサーバーにリクエストをルーティングするために必要な2つの情報だけであり、Webサーバーは復号化を実行します。
Fiddler (SSL復号化をオフにした状態)を使用して、安全なサイトでトラフィックを確認します。暗号化されていないクエリ文字列データやパス情報を表示できないことがわかります。
違いは、GET動詞で送信された暗号化されたパラメーターはアドレスバーに表示されますが、POST動詞で送信されたパラメーターは表示されません(もちろん、これはユーザーがユーザーを意味するわけではありません)もう1つの違いは、許可される最大長にあります。ブラウザではURLが制限されているため、GETリクエストは制限されます。3番目の違い:GETリクエストは、通過する中間Webサーバー(Web、プロキシなど)に記録されます。インターネット経由でGETを使用する場合、暗号化されたパラメータは、Webサーバーに到着する前に多くのマシンに確実に記録されます。
HTTPリクエストを視覚化すると役立つ場合があります。
GET /page.php?get-data-here HTTP/1.1
Host: www.site.com
post-data-here
HTTPSを使用すると、このすべてが暗号化されます。
POSTはGETよりも多くのデータを送信できます
GETは、悪意のあるユーザーがデータを操作するのが簡単です
GETは暗号化されていません
POSTは暗号化されていません