백엔드에서는 2가지 방향으로 보안 강화를 시도했습니다.
HTTP Only를 하게 되면서 Frontend에서도 만질 수 없게 되어, 코드가 아예 달라지게 되었습니다. 쿠키를 헤더에 담거나 제거하는 등 쿠키 관리를 Backend에서 담당하게 되었습니다.
당연히 JWT토큰에서 Cookie로 변경되면서 JWT Util 및 JWT AuthFilter를 그대로 사용할 수 없게 되었고, 직접 보안 강화 로직 구현을 시도하게 되었습니다.
사내 비품 관리 시스템인 비품인 서비스는 사내 고정된 환경에서 사용할 것이라는 생각이 들었습니다. 그래서 RefreshToken과 Ip를 함께 저장하여 AccessToken의 재발급 과정에서 Ip를 확인하고, Ip가 다를 때 재발급을 막고 RefreshToken을 제거하도록 시도해 보았습니다.