Skip to content

[FEAT] OAuth2 쿠키 보안 설정 적용 및 HttpOnly 쿠키 전환 #217

@Atriel1999

Description

@Atriel1999

기능 설명

OAuth2 인증 토큰을 HttpOnly 쿠키로 전환
Secure 속성을 추가 후
HTTPS환경에서만 쿠키가 전송되도록 변경

기능 도입 목적

  • XSS 공격으로부터 토큰 탈취 완전 차단 (HttpOnly)
  • HTTPS 환경에서만 쿠키 전송 보장 (Secure)
  • JavaScript를 통한 토큰 직접 접근 차단

상세 스펙

  1. OAuth2SuccessHandler.kt 수정

    • HttpOnly 쿠키 설정: accessCookie.isHttpOnly = true
    • 환경별 Secure 설정: accessCookie.secure = (environment == "prod") [논의 후 필요 할 시]
    • refreshCookie도 동일 적용
  2. AuthController.kt 수정

    • /refresh 엔드포인트에서 새 토큰을 HttpOnly 쿠키로 설정
    • /logout 엔드포인트에서 HttpOnly 쿠키 삭제 로직 추가
    • 응답 body에서 토큰 제거
  3. CORS 설정 추가

    • allowCredentials = true 설정
    • withCredentials 요청 허용
  4. 환경 구분 프로퍼티 추가

    • application.yml에 app.environment 설정 [논의 후 필요 할 시]

HttpOnly 쿠키 적용 후
JavaScript 쿠키 접근 방식 변경 필요

Front 부분

  1. request.ts 수정
    axios 인터셉터 수정, withCrendetials? 설정 필요

  2. useAuth.tsx 수정
    토큰 읽기 로직 제거
    서버 API 응답 기반 로그인 상태 판단으로 변경
    로그아웃시 서버 api호출(백엔드 구현필요<-2. AuthController.kt 수정에 써있음)로 쿠키 삭제

  3. 기존 쿠키 직접 접근 코드 제거
    -> 서버 기반 토큰 관리로 전환 (setCookie, removeCookie 관련 메서드 제거)

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions