8

パスワード保護を強化するために、nodejs bcryptライブラリを使用しています。

使用方法を正確に理解しているかどうかはわかりませんが、これまでのところ次のようになりました。

//A module containing this login function:

login: function(credentials,req,res) {

    //"credentials" is containing email and password from login form

    var query = 'SELECT password, email FROM users WHERE email = ? LIMIT 1';

    client.query(query,[credentials.email], function(err, results) {

        if (results[0]) {

            //Compare passwords
        if (bcrypt.compareSync(credentials.password, results[0].password)) {

                //Set session data and redirect to restricted area

            }
        }
    });
}

コードを読みやすくするために、この例ではすべてのエラー処理を削除しました。

1.これは機能し、ログインしてセッションを設定できます。しかし、これですべてでしょうか?何か不足していますか?

2.ハッシュを生成するときに、ソルトがパスワードの前に追加されているようです。ソルトをデータベースに保存する必要はありませんか?

どんな助けでも大歓迎

4

1 に答える 1

6

はい、これですべてです。パスワードを暗号化するときに生成するソルトは、レインボーテーブル攻撃を防ぐために最初に使用されます。あなたはそれを永続化する必要はありません。

于 2012-05-28T00:08:24.440 に答える