AI 요약
JWT가 현대 인증의 표준처럼 여겨지지만, 실제로 GitHub·Google·Amazon·Netflix·Stack Overflow 등 주요 사이트는 모두 Session+Cookie 방식을 사용한다는 사실을 분석한 글이다. JWT는 서비스 간 내부 호출, 오프라인 검증, 기계 신원 증명 등에는 적합하지만 브라우저 세션용으로 설계되지 않았다. 특히 토큰 취소 불가, 권한 회수 지연, XSS 취약성 등으로 인해 대부분의 JWT 사용은 결국 Session을 모방하는 것에 불과하다는 지적이다.
핵심 포인트
- GitHub은
_gh_session(Rails 암호화 세션), Google은 SID·HSID·SSID·SAPISID 등 서명·암호화된 계정 ID 저장 - JWT는 서명 후 만료 전까지 취소 불가 → 블랙리스트 유지 시 무상태성 상실이라는 딜레마
- JWT payload는 Base64 인코딩일 뿐 암호화가 아니어서 사용자 정보 노출, localStorage 저장 시 XSS 위험 최대
- Shiro RememberMe 취약점(CVE-2016-4437), Auth0의
alg: none알고리즘 혼동 취약점 등 JWT 구현 이슈 다수 - SPA 환경에서도 localStorage·메모리·HttpOnly Cookie 모두 각각의 트레이드오프 존재
향후 전망
- 브라우저 세션에는 Session+Cookie, 서비스 간 통신에는 JWT라는 역할 분리 원칙 강화
- JWT 라이브러리 검증 로직 강화 및 HttpOnly Cookie 기반 인증 회귀 추세
출처:juejin
