web-dev-qa-db-ja.com

HTTPSを介してプレーンテキストのパスワードを送信しても問題ありませんか?

データベースに保存する前にパスワードをソルト化してハッシュする必要がある理由は理解していますが、ブラウザ側でハッシュする必要があるのか​​、それともプレーンテキストのパスワードをHTTPS経由で送信するだけで安全であると考えられるのか、です。

問題がない場合、システムが安全であることをクライアントに証明するために使用できるドキュメントはありますか?そうでない場合、ベストプラクティスは何ですか?

31
user96738

HTTPSを介して「プレーンテキスト」パスワードを送信するのが標準的な方法です。クライアント/サーバー通信はTLSに従って暗号化されるため、パスワードは最終的にプレーンテキストではありません。

HTTPSで送信する前にパスワードを暗号化してもあまり効果はありません。攻撃者が暗号化されたパスワードを入手した場合、実際のパスワードと同じように使用できれば、サーバーは違いを知りません。それが提供する唯一の利点は、複数のサイトで同じパスワードを使用するユーザーを保護することですが、サイトを安全にすることはできません。

33
Buffalo5ix

ブラウザからHTTPS経由でWebサーバーにパスワードを送信することは、標準的な方法です。パスワードは、送信時にHTTPSによって暗号化されます。 https://stackoverflow.com/questions/962187/plain-text-password-over-https を参照してください

8
mti2935

ユーザーがHTMLにパスワードを入力すると<input type=password ...>フィールド。通常はそのまま、つまりハッシュやソルトなしでサーバーに送信されます。これがHTTPSなしでは絶対に行われるべきではない理由です。

しかし、HTTPSがしっかりしている場合、これで問題ありません。これは、ほとんどのWebアプリケーションが行うことです。

5
Mark Koek