誰かがあなたのウェブサイトに登録するときには、組み込みのPHP関数password_hash()を使用する必要があります。また、私は混乱を避けるためにあなたのデータベースに "password_hash"という名前を付け、 "password"には名前を付けることをお勧めします。
誰かがあなたのウェブサイトにログインしようとすると、組み込みのPHPのpassword_verify()を使用してハッシュされたパスワードとパスワードを比較する必要があります。
// Login function
function login($user, $pass)
{
// Search the user by username
$conn = connect();
$query = "SELECT password_hashed FROM account WHERE username = '$user'";
$result = mysqli_query($conn, $query);
if (mysqli_fetch_row($result))
{
// We found the user, check if password is correct
if(password_verify($pass, $result["password_hashed"]))
{
return true;
}
else
{
return false;
}
}
else
{
// We didn't find the user
return false;
}
}
- パスワードをデータベースに保存する際に、そのパスワードをハッシュする必要がありますか。ハッシュを使わずにパスワードを保存すると、データベースのパスワードは、登録時にユーザーが入力したのとまったく同じです。だから、ハッカーがデータベースに入ると、彼はすべてのユーザーのパスワードを見る。パスワードをハッシュすると、PHPはパスワードを完全に別のものにします。ハッカーがデータベースに入ると、パスワードは表示されませんが、まったく別のものが表示されます。
パスワードの確認機能は、ユーザーがログインしたときに必ず実行する方法です。ユーザーから受け取ったデータを入力するときは、セキュリティを追加することを忘れないでください($ _POST、$ _GET、$ _SESSION、。 ...)フォロー名でのユーザーの種類ときからです。?私の名前」DROPテーブルが占め、彼らはすべてのアカウント情報を削除します
出典
2016-06-22 12:18:18
Max
デシベルであなたがハッシュされたパスワードを保存するので –
うわー...あなたがPHPをお読みください-bookまたは何か.. – tkausl
データフォームのクエリ結果をフェッチすることを忘れました – Saty