2011-03-14 2 views
0

나는 '비밀번호를 잊어 버렸습니다'링크가 열려 사용자가 계정 비밀번호를 입력하도록합니다. 그러나 나는 그 때 전자 우편에서 보내질 유일한 URL를 창조하고 싶다. 클릭하면 웹 사이트의 change_password.php 페이지로 이동합니다.내 웹 사이트의 보안 페이지에 액세스하기위한 고유 한 URL 생성

나는 MD5 등) (독특한 사용하여 고유 ID를 생성 할 수 있습니다,하지만 여기에서 나는 어떤 도움이 크게 감사합니다

change_password.php 페이지를 액세스 할 수 HREF에 추가하는 방법을 너무 잘 모르겠습니다

답변

2

유일한 해결책은 전자 메일에있는 링크의 쿼리 문자열에 md5를 추가하는 것입니다. 이것은 매우 안전하지는 않지만 보안 토지를 통해 구두로 비밀번호를 제공하는 것보다 더 안전한 옵션은 없습니다.

일단 사용자가 링크를 클릭하면 GET에서 md5를 가져 와서 임시 비밀번호와 비교하여 "비밀번호 재설정"페이지에 대한 액세스 권한을 부여하여 비밀번호를 안전하게 입력 할 수 있으며 안전하게 저장됩니다.

비밀번호 재설정 페이지에 한 번 액세스하려면이 링크를 클릭 한 후 임시 비밀번호를 즉시 삭제해야합니다 (실제로 재설정 여부와 관계 없음). 링크는 한 번만 작동해야합니다.

+0

나는 당신의 방법 tandu를 좋아하지 만, 사용자가 이메일에서 change_password 페이지로 이동하기위한 링크를 클릭하는 경우 어떻게하면 고유 MD5 번호를 얻을 수 있습니까? – Lit

+0

고유 한 MD5 번호를 데이터베이스에 저장해야합니다 (예 : 사용자 테이블의 경우 temp_password). 또한 보안 강화를 위해 시간 제한을 두는 것이 좋습니다. 그런 다음 토큰이 쿼리 문자열의 끝에 추가 된 전자 메일을 전자 메일로 보냅니다. 이것이 GET으로 액세스하는 방법입니다. –

2

URL 매개 변수를 change_password.php 페이지에 추가 할 수 있습니다. 예 : "토큰".

고유 URL을 생성하는 동안이 토큰의 값을 생성하고 TTL (Time to Live) 및 사용자 이름을 사용하여 Database long에 저장합니다.

요청이 change_password.php에 오면 해당 매개 변수를 검색하고 DB에서 조회하여 TTL 및 해당 사용자 이름을 가져옵니다. 토큰이 만료되지 않은 경우 해당 사용자의 비밀번호를 재설정/변경할 수 있습니다.

관련 문제