-1
私のアプリケーションでPHP固有のパスワード機能を使用しているのは初めてです。以下のコードを使用してユーザーのパスワードを保存しました。password_verify()またはハッシュされたユーザー入力をPHPで保存されたパスワードと比較していますか?
password_hash($this->input->post('password'),PASSWORD_BCRYPT);
結果はデータベースに保存されます。今、私はログインプロセスでユーザーを確認したい。
私の質問はこちらです。
方法1
$sql = "SELECT id,password FROM tbl_members WHERE email = ? LIMIT 1";
$result = $this->db->query($sql,array('[email protected]'));
if ($result->num_rows()) {
$row = $result->row();
$hash = $row->password;
if (password_verify($this->input->post('password'), $hash)) echo 'Successful login';
}
方法2
ログインプロセスに適している方法$hash = password_hash($this->input->post('password'),PASSWORD_BCRYPT);
$sql = "SELECT id FROM tbl_members WHERE email = ? AND password = ? LIMIT 1";
$result = $this->db->query($sql,array('[email protected]',$user_hashed_password));
if ($result->num_rows()) echo 'Successful Login';
:私は2つの選択肢がありますか?
タイミング攻撃に対して脆弱性があります。 APIは、理由により提供されています。これを使って。 – PeeHaa
@PeeHaa実際には... *動作していて、もう1つは動作しません... – deceze
password_hashは私のためにより安全です。 – Beginner