Skip to content

[Feat] SMS 인증번호 발송 남용 방어 #116

Description

@pearseona

📋 작업 내용

  • 대상번호별 일일 발송 한도 추가 (동일 번호로의 하루 발송 횟수 상한)
  • 글로벌 일일 발송 상한 추가 (전체 발송량 급증 시 안전 차단)
  • 동작하는 per-IP 상한 적용 (이슈 [Chore] Spring Boot + PostgreSQL 초기 프로젝트 세팅 #1 선행 반영)
  • 임계 초과 시 CAPTCHA 또는 proof-of-work 챌린지 요구
  • 한도 초과/차단을 명확한 에러 코드·메시지로 응답 (프론트에서 구분 노출 가능하도록)
  • 발송량/차단 이벤트 메트릭 및 급증 알림 연동 (관측성 이슈와 연계)
  • 남용 시도 로그 기록 (PII 미노출, 번호는 마스킹)

✅ 완료 조건

  • 동일 대상번호로의 일일 발송이 한도 초과 시 차단됨
  • 글로벌 일일 발송 상한 도달 시 안전하게 차단되고 알림이 발생함
  • per-IP 발송 제한이 공격자 단위로 동작함(이슈 [Chore] Spring Boot + PostgreSQL 초기 프로젝트 세팅 #1 반영)을 검증
  • 임계 초과 시 CAPTCHA/PoW 챌린지가 요구됨
  • 각 차단 케이스가 구분 가능한 에러 코드로 응답됨(테스트)
  • 정상 사용자 흐름(가입/재설정)은 영향받지 않음을 회귀 테스트로 확인

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featImplementing new features

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions