私は忘れてしまったパスワードページを作成しています。ログインしてパスワードをリセットできるように一時的なパスワードをメールで送信します。安全な一時的なパスワードを送信する
パスワードを作成する際にはどうすればよいですか。どのような方法が最適ですか。唯一、彼らが一時パスワードを要求されたIPアドレスからのログインを可能にするための試みにおいて$temporarypassword = sha1($_SERVER['REMOTE_ADDR'])
:
私が持っていたアイデアのようなものです。これを行う最善の方法は何ですか?これまで
コード:
if(strpos($_SERVER['HTTP_REFERER'],'domain.com') && ($_POST['forgotpasstoken'] == sha1($_SESSION['token'].'forgotpassword'))){
if(isset($_POST['forgotemail']) && !empty($_POST['forgotemail'])){
$email = mysql_escape_string(trim($_POST['forgotemail']));
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
echo '<div class="error">Please enter a valid email address.</div>';
} else {
$sql = "SELECT email FROM users WHERE email = '$email' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) > 0) {
//If email/user exists
$temporarypassword = sha1($_SERVER['REMOTE_ADDR'])
//EMAIL PASSWORD HERE
echo '<div class="success">A temporary recovery password has been emailed to you.</div>';
//If email/user exits
} else {
echo '<div class="error">This email is not registered.</div>';
}
}
} else {
echo '<div class="error">Please enter an email address.</div>';
}
}
私はそのようにすることを提案しません。 IPは変更することができ、人はIPのリセット後にメールを受け取ることができます。 私は完全にランダムなパスワードのようなものを提案していますが、これは短時間しか使用できません。ユーザーに知らせることを忘れないでください。 –