나는 잊어 버린 암호 페이지를 만들고 사용자에게 로그인하여 암호를 재설정 할 수 있도록 임시 암호를 전자 메일로 보내고 있습니다.보안 임시 암호 보내기
암호를 만들 때 고려해야 할 사항은 무엇입니까?
내가 가진 생각이 같은 것입니다 : 시도에서 $temporarypassword = sha1($_SERVER['REMOTE_ADDR'])
은 그들이 임시 비밀번호를 요청한 IP 주소에서 로그인 할 수 있도록. 이 일을하는 가장 좋은 방법은 무엇입니까 ?? 지금까지
코드 :
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 재설정 후 메일을 수신 할 수 있습니다. 짧은 시간 동안 만 사용할 수있는 완전히 임의의 암호를 제안합니다. 사용자에게 알려주는 것을 잊지 마십시오. –