1

私はセキュリティに関しては初心者です.php cryptを読んで良いアドバイスを探していますが、最も効果的な方法で「どのように」行うかについては誰も詳しく説明していません.

次のようなものを使用するテストログインを作成しました。

 //verify login from user input
$username = mysql_real_escape_string($_POST['username']);
$salt = '$2a$10$cdDegHjJLPUvVXYz23679.MOetNHBk9NTStpY9YjJWiL5ECfhHlSm';
$password = crypt(mysql_real_escape_string($_POST['password']), $salt);

(パスワード文字列の長さを制限するなど、完全に安全にするために変更する必要があることはたくさんあると思います)

ランダムなソルトを作成してパスワードとともに保存するのが理想的であることをどこかで読みました(パスワードに関係のない数字をチェックするという概念を完全には理解していません)

次に、セキュリティを向上させないため、ランダムなソルトを行うのは無意味であり、静的なソルトでもほぼ同じことを行うことをどこかで読みました。

$_GET でランダムなソルトを使用するこのチュートリアルを見ました。(これは正しくないと言ってください)

誰かが私のbcryptを可能な限り効果的にする正しい方向に私を向けることができますか.

ありがとう

4

2 に答える 2

1

各パスワードにランダムなソルトを使用すること重要です。関数の PHP の実装ではcrypt()、結果のハッシュ値に自動的に含まれるため、格納場所に問題はありませんが、ランダム ソースから正しく生成する必要があります。

関数がどのように機能するかを理解することが重要だと思うので、PHP での bcrypt に関する小さな記事を書きました。それを理解するとすぐに、phpassのような十分に確立されたライブラリを使用できます。

于 2012-04-09T20:50:31.240 に答える
1

ここのこのスレッドで私の古い回答を参照してください。1 つの興味深い記事と phpass へのリンクがあります。

于 2012-04-09T19:12:19.317 に答える