이메일을 통해 사용자에게 전송되는 임시 비밀번호를 안전하게 보호하시나요?

StackOverflow https://stackoverflow.com/questions/1625976

  •  06-07-2019
  •  | 
  •  

문제

관리자가 사용자를 생성할 수 있는 간단한 웹 애플리케이션을 설정했습니다.사용자는 스스로를 생성하지 않습니다.관리자가 해야 할 일은 사용자 이름과 이메일을 입력하는 것뿐입니다. 그러면 사용자가 로그인할 수 있도록 임시 비밀번호가 전송됩니다.이 이메일은 일반 텍스트 형식으로 전송됩니다.사용자가 처음 로그온하는 경우 비밀번호를 변경하고 보안 질문과 대답을 입력해야 합니다.사용자는 처음으로 로그인하려면 임시 비밀번호를 알아야 하며 이것이 이메일을 통해 알려줄 수 있는 유일한 방법입니다.다른 옵션은 관리자가 사용자에게 전화를 걸어 임시 비밀번호를 전화로 또는 직접 알려주도록 하는 것이지만 이는 실용적이지 않습니다.이런 상황을 어떻게 처리할 수 있을까요?

도움이 되었습니까?

해결책

나는 일반적으로 백엔드의 초대 기록을 기반으로 임시 URL을 사용합니다.기본적으로 초대 레코드를 생성하고 사용자 이메일 주소, 타임스탬프 및 임의 값과 같은 일부 정보를 기반으로 해시를 생성합니다.초대 기록의 일부로 해시를 저장한 다음 해시를 매개변수로 사용하여 URL을 보냅니다.

링크를 클릭하면 초대가 존재하고 사용되지 않았는지 확인한 다음 비밀번호를 설정하고 초대를 무효화할 수 있습니다.

어떤 종류의 비밀번호도 보낼 필요가 없으며 원하는 경우 초대 기록에 만료를 설정할 수도 있습니다.

다른 팁

귀하가 설명하는 시나리오는 매우 일반적입니다. 임시 비밀번호를 이메일로 보내고 처음 로그인할 때 비밀번호를 변경하도록 요구하는 것입니다.이 모델에 특별한 문제가 없다면 이 모델을 사용하지 않을 이유가 없습니다.관리자에게 전화를 걸면 사용자가 복잡해질 수 있습니다. 어떤 대가를 치르더라도 이를 방지하겠습니다.

사용자가 직접 로그인해야 하는 인수로 비밀번호와 사용자 해시를 사용하여 사용자 정의 URL을 생성할 수 있습니다.공격자가 정보를 가지고 있지 않으면 해시를 검색하기가 어렵습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top