JWT 토큰 검증기 챌린지

발행: (2025년 12월 2일 오전 07:50 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

개요

2019년 Django의 세션 관리 프레임워크에 미묘하지만 치명적인 취약점(CVE‑2019‑11358)이 존재했습니다. 프레임워크가 인증 후 세션 토큰을 제대로 무효화하지 않아 공격자가 사용자 세션을 무한히 탈취할 수 있었습니다. 근본 원인은 토큰 만료 검사에서 bool:을 사용한 잘못된 비교로 인한 오프‑바이‑원 오류였습니다.

토큰‑검증 연습

def is_token_valid(current_time: float, expiry: float, token_timestamp: float) -> bool:
    """
    인증 토큰이 아직 유효한지 검증합니다.

    규칙:
    - 토큰이 만료된 경우(False, 경과 시간 >= expiry) 반환합니다.
    - 시간 조작이 감지된 경우(False, current_time < token_timestamp) 반환합니다.
    
    예시:
    >>> is_token_valid(1000.0, 600, 1500.0)   # 500 s 경과
    True
    >>> is_token_valid(1000.0, 600, 1600.0)   # 정확히 만료 시점
    False
    """
    # Your implementation here
    pass

엣지‑케이스 표

만료 설정보안 위험실제 영향
만료 검사 없음❌ 치명적토큰이 영원히 유효
잘못된 경계 (=>가 아님)

추가 고려 사항

  • 시간 여행 탐지 (current_time < token_timestamp).
  • 실제 보안 시나리오 (세션 고정, 시계 스키우 공격).
Back to Blog

관련 글

더 보기 »

금 가격 계산기

!계산기 보기https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploa...