2017-04-20 14 views
-4

私のアプリは、BCryptを使用してパスワードを暗号化するログイン/登録システムを使用しています。ユーザーがパスワードを登録すると、BCryptを使用して暗号化され、mysqlデータベースに格納されます。しかし、ユーザーがログインすると、セキュリティ上の理由からパスワードも暗号化したいと思っています。ログインURLにパスワードを入れる前にパスワードを暗号化することができますが、2つのハッシュを比較することで、動作しないようにすることができます。ログインURLのBCryptハッシュパスワード

は、どのように私はあまりにもログイン要求(URL)でパスワードを暗号化することができますか?

私は非常によく私の質問を説明していなかったので、私はより詳細にそれを説明しようとします。このアプリではURLリクエストを送信するスクリプトがあります(例:site/login.php?username = name &パスワード=パスワード 私の訪問者のログを私のcpanelに戻すと、&パスワードフィールドを読むことができます。私のユーザーのパスワードそれは私がないようにすることだ、私も、私は私はあなたがあなたのログインフォームに「GET」メソッドを使用する代わりに、で、ここで何か間違ったことをやっていると思うどこにでも

+4

なぜあなたはURLにパスワードを送信したいですか? –

+1

*「ユーザーがログインするとセキュリティ上の理由からパスワードも暗号化したい」* - うーん...すでにハッシュされている。ハッシングと暗号化は2つの異なる動物です。質問は不明です、IMHO。 –

+1

彼は、次のようなことを言っていました:*ユーザーがログインフォームに入力したパスワードを暗号化し、このパスワードをURLパラメータとして送信したいとします: 'login.php?u = username&p = encrypted_pa​​ssword' * @ NorthSeaDevsなぜ今あなたは暗号化されたURLにパスワードを送信したいですか?同じページでログイン資格情報を処理/認証し、**別のページ**にリダイレクトするだけで済みます。 – Poiz

答えて

-2

ユーザーのパスワードを見ることができないようにそれを作りたいです"POST" W3Schoolsのから

機密データを送信するために取得、使用しないでください!あなたのフォームがthe POST methodを使用している場合、資格情報をチェックするPHPページへのログイン情報を送信しているとき

(URLに表示されます)、パスワードは、URLには表示されません。

EDIT:それは、より安全な外観とW3 (see Touheed Khan's answer)によって推奨されていますが、コメントで言われたことを考慮すると、POST RiggsFolly saidとして、GETと比べないより安全です:

HTTPSは賢明な安全なメカニズムです

+0

これはPOSTを使用しない理由ではないため、誰かがGETリクエストと同じようにPOSTリクエストをスニッフィングできます。違いは、ウェブサーバーはPOSTリクエストの内容をアクセスログに記録しないが、GETリクエストを記録するという点です。 – JamesHalsall

+0

さらに、SSLソケットにプレーンテキストのパスワードを指定してGET/POSTを使用するだけで安全です。 –

+0

@JamesHalsallありがとう、私は両方のリクエストの種類が簡単に盗聴される可能性があるとは思わなかった! –

1

パスワードは、HTTPS接続を介して、URLとしてではなくPOSTとして送信します。 HTTPSを使用して

は、URLのアドレス部分以外のすべてを暗号化します。

HTTPSを使用する場合でもPOSTを使用する理由は、多くのサーバーがURLをログに記録し、通常はパスワードを含むためです。明らかに、サーバーログにパスワードを持たせることは、セキュリティ上の問題です。

サーバーに送信する前にパスワードをハッシュしないでください。パスワードをハッシュにするだけです。

BCryptをサーバ上で使用すると、パスワードを保存するための安全な方法は、password_hashpassword_verify(いずれもPHP共通)です。

関連する問題