인증 화면의 타이머가 0이 됐는데 제출 버튼이 계속 작동하거나, 새 번호를 받았는데 이전 번호의 상태가 불분명하면 사용자는 무엇을 입력해야 할지 알기 어렵습니다. 홈페이지 검색으로 도움말에 들어온 경우에도 실제 화면과 다른 시간을 안내하면 혼선이 커집니다. 인증번호 시간은 디자인용 카운트다운이 아니라 서버의 유효성 판정을 설명하는 정보입니다. 구체적인 만료 길이와 시도 제한은 서비스 위험 분석에 따라 정하고 화면에 하드코딩하지 않습니다.
서버 시각을 화면 상태의 기준으로 삼습니다
번호 발급 시각, 만료 시각, 확인 시도 횟수, 재발송 가능 시각을 하나의 인증 상태로 관리합니다. 화면 타이머는 이 상태를 보여 주는 역할만 해야 하며 기기의 시계나 탭을 연 시점으로 새 기간을 만들면 안 됩니다. 만료되면 제출을 막고 새 번호를 받을 동작과 그 결과를 안내합니다. 페이지 새로고침, 앱 전환, 네트워크 지연 뒤에도 남은 시간이 갑자기 늘거나 유효한 번호가 잘못 폐기되지 않는지 시험합니다.
재발송 뒤 어느 번호가 유효한지 명확히 합니다
새 번호를 발급할 때 이전 번호를 어떻게 처리할지 보안 정책으로 정하고 사용자가 동시에 여러 번호를 시도하지 않게 합니다. OWASP는 일회용 비밀번호에 짧은 유효기간과 엄격한 시도 제한을 두고, 재발송 때 새 값을 만들어 이전 기록을 덮는 방식을 권고합니다. 화면에는 발송 대상의 마스킹 값, 새 만료 시점, 도착 지연 시 행동을 표시합니다. 번호 원문은 로그나 분석 도구에 남기지 않습니다.
실패 횟수와 도움말 유입을 함께 해석합니다
만료, 코드 불일치, 전송 실패, 재발송 제한을 다른 사건으로 집계합니다. 만료가 많다면 시간을 무조건 늘리기보다 발송 지연이나 화면 안내 시점을 먼저 확인합니다. 검색에 노출되는 도움말에는 고정된 초 단위 값을 복제하지 말고 현재 인증 화면으로 연결하고 일반적인 해결 순서를 설명합니다. 실제 만료 경계 전후와 여러 탭, 연속 재발송을 검수해 보안 판정과 사용자 문구가 같은 결과를 내는지 확인합니다.
‘재발송 뒤 어느 번호가 유효한지 명확히 합니다’의 결과를 해석하는 기준
‘인증번호 남은 시간과 재발송 상태를 함께 관리합니다’를 게시했다는 사실, ‘재발송 뒤 어느 번호가 유효한지 명확히 합니다’가 화면에 노출됐다는 사실, 실제 문의나 행동이 생겼다는 사실은 서로 다른 단계입니다. 관찰 기록에는 확인한 주소와 시점, 사용한 기기나 경로, ‘서버 시각을 화면 상태의 기준으로 삼습니다’에서 ‘실패 횟수와 도움말 유입을 함께 해석합니다’까지 실제로 이동했는지를 적습니다. 한 번의 화면 확인만으로 ‘재발송 뒤 어느 번호가 유효한지 명확히 합니다’의 성과를 확정하지 않고 비교 기간과 변경 내용을 같이 봅니다. 문의가 늘거나 줄었을 때도 곧바로 한 문장 때문이라고 결론짓지 말고 ‘서버 시각을 화면 상태의 기준으로 삼습니다’의 내용 변경, ‘실패 횟수와 도움말 유입을 함께 해석합니다’의 연결 상태, 운영 일정처럼 함께 달라진 조건을 구분합니다.