Spring Security - 로그아웃

별빛사막·2025년 1월 9일

로그아웃을 왜 서버에 요청해야할까?

  • 쿠키는 브라우저(클라이언트)에서도 조작이 가능하고, 서버에서도 조작이 가능하다.

그럼 로그아웃은 왜 서버에 요청해야할까?
그냥 브라우저(클라이언트)쪽에서 kill하면 되지 않을까?

Nope!! XSS공격과 같이 웹 취약점을 활용한 보안키 탈취가 가능하기 떄문에
쿠키를 생성하고 삭제하는 것을 할 수 없도록 하는게 좋다. → HTTP ONLY 쿠키 사용

그런면에서 본다면
보안성 : 헤더에 인증정보를 저장하는 것 < 쿠키를 사용하는 것

  • HTTP ONLY 쿠키는 JavaScript로 접근이 불가능하기 때문에 서버에서 쿠키의 만료시간을 0으로 설정하여 브라우저가 해당 쿠키를 삭제하도록 해야 한다.
    → 로그아웃을 서버에서 처리해야만 하는 주된 이유임.

일반 쿠키 vs HTTP ONLY 쿠키

구분일반 쿠키HTTP ONLY 쿠키
JavaScript 접근가능불가능
XSS 공격 위험높음낮음
주 사용 용도일반적인 데이터 저장보안이 필요한 데이터(세션ID, 토큰 등)
설정 방법httpOnly=falsehttpOnly=true
브라우저 지원모든 브라우저대부분의 현대 브라우저
profile
조금씩 매일 성장하자

0개의 댓글