2012-04-09 9 views
1

私はセキュリティについてはまったく新しいものです。私はphp cryptを読んで、良いアドバイスを探していますが、誰も本当に「どのように」あなたが最も効果的な方法でそれをやっていくかについて詳しくは触れていません。塩でbcryptどのように?

私はこのようなものを使用してテスト用のログインを作っ:

//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); 

(私は何で私を啓発してください、私は)例えば、パスワードの文字列の長さを制限する(それは完全に安全にするために変更する必要がたくさんあります確信しています

ランダムな塩を作り、それをパスワードと一緒に保存するのが理想的だと読んでいます。(私はそれに関係しない番号をチェックするという概念を完全に理解していません。パスワード)

Th私はどこかで、無作為な塩をするのは無意味だと読んでいます。なぜなら、安全性を高めることはできないし、静的な塩も同じことをするからです。

私はこれを見ましたtutorial $ _GETでランダムな塩を使用しました。 (これは正しくないと教えてください)

誰かが私のbcryptをできるだけ効果的にする正しい方向に向けることができますか?

おかげ

+0

「これは正しくない」と教えてください。 –

+1

盲目的に 'mysql_real_escape_string'をどこでも使用しないでください。クエリのために文字列をエスケープするためにのみ使用する必要があります(とにかく避けるべきです。プリペアドステートメントを使用するとより安全で、初心者にとっては簡単に取得できます)。そして、はい、ユーザーごとにランダムな塩を使用する必要があります。 – knittl

答えて

1

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

+0

ありがとう、以前私はそれを見つけた。それは良いように見えますが、私は手を汚してもらいたいので、私は援助なしでそれを行う方法を知っています。 – Undefined

+0

私はどこでも居場所があります。http://www.openwall.com/phpass/で終わっています。私は自分の実装を使用すべきではありませんが、私はセキュリティについて学ぶべきです。私は徹底的なプロジェクトのためにelsesを試してテスト済みのシステムを使用しなければなりません。 – Undefined

+1

@Julien Etienne - いいえ、あなたの手が汚れていて、汚れているとすぐにライブラリを使うことができます。しばしば私は例を書くことになった、私はインターネットで記事のトンを見つけることを期待 - 私はそれらを見つけることは誰も汚い手を望んでいないため。 – martinstoeckli

1

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

小文字の「article about bcrypt in PHP」と書かれています。機能の仕組みを理解することが重要だと思います。わかり次第、phpassのような十分に確立されたライブラリを使用することができます。

関連する問題