사용자가 정보를 저장하고 암호화 할 수있는 앱을 개발 중이며 일부는 민감 할 수 있습니다. 최근에 "사용자가 비밀번호를 분실하면 어떻게 되나요?"라는 질문이 나왔습니다. 현재이 앱에서는 분실 한 비밀번호를 복구 할 방법이 없습니다. 개인 정보 보호 문제를 위해 앱이 내 서버에 정보를 전송하지 않도록하고 싶습니다. 사용자가 이메일로 요청하는 사용자 이름 및 비밀번호 필드에 특정 문구를 입력하여 로그인 정보를 재설정하는 방법을 설정하는 것이 좋습니다. 그러나 이것이 좋은 생각인지 확실하지 않습니다. 이를 수행하는 더 좋은 방법이 있습니까?
비밀번호 재설정을 처리하는 가장 안전한 방법은 재설정 토큰을 사용하는 것입니다. 사용자가 암호 재설정을 요청할 때마다 약 15 분 동안 또는 사용할 때까지 유효한 새 토큰을 만듭니다. 그런 다음과 같은 URL을 사용하여 사용자 이메일에 대한 링크를 보냅니다 website.tld/reset?user=username&token=aRandomToken
. 재설정 페이지에서 사용자는 새 비밀번호를 선택할 수 있습니다. 이렇게하면 일반 텍스트로 사용자에게 보내는 임의의 암호를 만들 필요가 없습니다. 더 안전한 방법은 사용자를 해시하는 것이므로 user
매개 변수는 해시가되고 사용자는 재설정 페이지에 사용자 이름을 입력해야합니다. 이렇게하면 링크가있는 해커가 URL 만 볼 수는 없지만 실제로 사용자 이름을 알아야합니다.
편의상 구현은 다음과 같이 보일 수 있습니다.
var reset = new PasswordReset;
reset.user = realUsername;
reset.token = md5(randString(5) + date('Y-m-d H:i:s');
reset.save();
var url = 'website.tld/reset?user=' + md5(realUsername) + '&token=' + reset.token;
// send an email to the user with the url
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다