프로덕션 앱에서 QR 로그인 추출 및 병합 전 11개 보안 취약점 해결
(dev.to)QR 로그인 기능 구현 시 발생할 수 있는 11가지 보안 취약점을 사례 중심으로 분석하며, 작동하는 코드가 반드시 안전한 코드는 아니라는 점을 강조하여 개발자들에게 보안 중심 설계의 중요성을 전달합니다.
이 글의 핵심 포인트
- 1토큰 저장 방식 개선: UUID를 평문으로 저장하는 대신 SHA-256 해시를 사용하여 DB 유출 시의 위험 최소화
- 2SSRF 및 Open Redirect 방지: QR 코드가 담고 있는 URL의 프로토콜과 Origin을 엄격히 검증하여 공격자의 임의 요청 차단
- 3세션 고정 공격(Session Fixation) 방어: 로그인 성공 시 기존 세션을 폐기하고 session()->regenerate()를 통해 새로운 세션 생성