피드로 돌아가기
Dev.toSecurity
원문 읽기
Stateless 아키텍처 구현을 통한 인증 DB I/O 제거 및 보안 최적화
JWT for Beginners, Plus Where to Store It Safely
AI 요약
Context
HTTP의 Stateless 특성으로 인해 기존 Session 기반 인증은 매 요청마다 DB 조회가 필요한 I/O 병목 현상 발생. 서버 확장 시 세션 저장소 공유를 위한 인프라 복잡도가 증가하는 한계 직면.
Technical Solution
- Signature 기반의 Self-contained 토큰 구조를 도입하여 서버 내 DB 조회 없이 사용자 신원 검증 가능하도록 설계
- Header, Payload, Signature의 3단 구조를 통해 데이터 무결성을 보장하고 Secret Key를 통한 변조 방지 로직 구현
- Access Token과 Refresh Token의 생명 주기를 분리하여 보안성과 사용자 편의성의 Trade-off 해결
- XSS 공격 방지를 위해 Refresh Token은 httpOnly 쿠키에 저장하고 Access Token은 메모리 변수에 유지하는 이중 저장 전략 채택
- SameSite 설정을 통해 CSRF 공격 벡터를 차단하는 브라우저 보안 정책 적용
실천 포인트
1. Payload에 민감 정보 포함 여부 확인(Base64 인코딩 특성상 노출 위험)
2. Refresh Token의 httpOnly 및 Secure 속성 적용 여부 점검
3. Access Token의 유효 기간을 짧게 설정하여 토큰 유출 피해 범위 제한
4. 서비스 성격에 따른 SameSite(Lax vs Strict) 설정 최적화