JWT 보안강화 시도

신경연·2023년 5월 18일
0

비품인

목록 보기
3/7

보안 강화

백엔드에서는 2가지 방향으로 보안 강화를 시도했습니다.

  • HttpOnly 쿠키 도입, Secure 설정.
  • Redis Server에 RefreshToken과 함께 사용자 Ip 저장 및 확인 로직 구현.

1. HttpOnly 쿠키, Secure 설정.

HTTP Only를 통해 자바스크립트로 쿠키를 조회하는 것을 막고, Secure 설정을 통해 웹브라우저와 웹서버가 HTTPS로 통신하는 경우에만 웹브라우저가 쿠키를 서버로 전송하도록 하여 보안 강화를 시도했습니다.

HTTP Only를 하게 되면서 Frontend에서도 만질 수 없게 되어, 코드가 아예 달라지게 되었습니다. 쿠키를 헤더에 담거나 제거하는 등 쿠키 관리를 Backend에서 담당하게 되었습니다.

2) JWT AuthFilter

당연히 JWT토큰에서 Cookie로 변경되면서 JWT Util 및 JWT AuthFilter를 그대로 사용할 수 없게 되었고, 직접 보안 강화 로직 구현을 시도하게 되었습니다.

2. RefreshToken Ip 저장.

사내 비품 관리 시스템인 비품인 서비스는 사내 고정된 환경에서 사용할 것이라는 생각이 들었습니다. 그래서 RefreshToken과 Ip를 함께 저장하여 AccessToken의 재발급 과정에서 Ip를 확인하고, Ip가 다를 때 재발급을 막고 RefreshToken을 제거하도록 시도해 보았습니다.

profile
반갑습니다

0개의 댓글