web-dev-qa-db-ja.com

GETとPOST暗号化の違いは何ですか?

GETとPOSTデータを暗号化するときの違いは何ですか?答えのためのThx

編集:私はそれをより具体的に書く必要があります。

Https-SSLがこの両方の方法を暗号化する場合、ブラウザーがこれを行う方法の違いは何ですか。暗号化されている部分と暗号化されていない部分はどれですか?どこかで、宛先URLがPOSTで暗号化されていないことを読みましたが、それは本当ですか? GETでそれが真で同じである場合、すべてのパラメーターはどこにありますか?

Edit2:まだ私の質問の答えがわかりません。両方の方法が同じデータで暗号化されている場合、スニッフィングされたときの外観は同じですか?暗号化されている部分と暗号化されていない部分はどれですか?

28
Roar

[〜#〜] 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などの情報を安全に保持するための良い方法です。

53
Ben S

HTTPS GETリクエストが行われると、クエリ文字列パラメータが暗号化されます! HTTPSリクエストで暗号化されないのは、リクエストのサーバー名またはIPアドレスとポートだけです。これらは、ブラウザからWebサーバーにリクエストをルーティングするために必要な2つの情報だけであり、Webサーバーは復号化を実行します。

Fiddler (SSL復号化をオフにした状態)を使用して、安全なサイトでトラフィックを確認します。暗号化されていないクエリ文字列データやパス情報を表示できないことがわかります。

3
John Bledsoe

違いは、GET動詞で送信された暗号化されたパラメーターはアドレスバーに表示されますが、POST動詞で送信されたパラメーターは表示されません(もちろん、これはユーザーがユーザーを意味するわけではありません)もう1つの違いは、許可される最大長にあります。ブラウザではURLが制限されているため、GETリクエストは制限されます。3番目の違い:GETリクエストは、通過する中間Webサーバー(Web、プロキシなど)に記録されます。インターネット経由でGETを使用する場合、暗号化されたパラメータは、Webサーバーに到着する前に多くのマシンに確実に記録されます。

3
Darin Dimitrov

HTTPリクエストを視覚化すると役立つ場合があります。

GET /page.php?get-data-here HTTP/1.1
Host: www.site.com

post-data-here

HTTPSを使用すると、このすべてが暗号化されます。

0
JW.

POSTはGETよりも多くのデータを送信できます

GETは、悪意のあるユーザーがデータを操作するのが簡単です

GETは暗号化されていません

POSTは暗号化されていません

0
Tom Gullen