パスワードの回復コードを書きました。既存のユーザーが必要なフィールドに自分のメールアドレスを入力すると、パスワード回復用のリンクが電子メールで送信され、受信したリンクをクリックすると、パスワード回復ページが表示されます。それは完璧に働いています。パスワードリカバリ用の電子メールの時刻を設定する
しかし、私は時間のリンクが必要です。私が60秒以内に電子メールのパスワード回復リンクのための60秒を設定すれば。ユーザーがパスワードを回復できないと、リンクが失敗します。どうすればいいか分かりませんか?私にヒントを与えてください。表中の
私のフィールドは、次のとおりです。名前、電子メール、モバイル、パスワード、パスコード
update.phpを(インサートメールが予備のメールリンクを送信するために)
<?php
include("connection.php");
extract($_POST);
if(isset($email)==true)
{
$query=mysql_query("select * from account where email='$email'") or die(mysql_error());
$result=mysql_num_rows($query);
if($result==1)
{
$salt = "498#2D83B631%3800EBD!801600D*7E3CC13";
$restkey = hash('sha512', $salt.$email);
mysql_query("update account SET passcode='$restkey' where email='$email'") or die(mysql_error());
$to="$email";
$subject="Password Reset";
$pwrurl = "demo.cstechnology.net/updatepass.php?restkey=".$restkey;
$message="To reset your password, please click the link below. If you cannot click it, please paste it into your web browser's address bar.\n\n" . $pwrurl . "\n\nThanks,\nThe Administration";
$header="FROM:[email protected]";
mail($to,$subject,$message,$header);
}
else
{
echo "Invalid Email";
}
}
?>
<form action="" method="post">
<table>
<tr><td>Email</td><td><input type="email" required name="email" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="submit" /></td></tr>
</form>
updatepass。 php(電子メールのリカバリ電子メールリンクをクリックすると、パスワードが更新されます)
<?php
session_start();
include("connection.php");
extract($_REQUEST);
extract($_POST);
if(isset($submit)==true)
{
$query=mysql_query("update account SET password='$password' where passcode='$restkey'") or die(mysql_error());
echo"Password Updated Successfully";
}
if(isset($restkey)==true)
{
echo"<form action='' method='post'>
<table>
<tr><td>Password</td><td><input type='password' required name='password' /></td></tr>
<tr><td></td><td><input type='submit' name='submit' value='submit' /></td></tr>
</form>";
}
?>
'$ salt =" 498#2D83B631%3800EBD!801600D * 7E3CC13 ";'塩は、保存されている各クレデンシャル([OWASP:パスワード保存チートシート](https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Use_a_cryptographically_strong_credential-specific_salt) – Andreas
$塩はユニークで、$ emailで追加しました。 – user3189881
私はライブ環境でこのコードを使用しません。それはあなたが思っているほど安全ではありません。 –