목록 보기
간편 로그인 보안 강화 사례
백엔드

간편 로그인 보안 강화 사례

넥스트리
넥스트리
2026년 9월 23일

두줄요약

병원 전자문진 시스템의 링크 로그인에서 정식 회원 정보가 노출되는 취약점을 발견하고 보완했습니다. 로그인 방식을 토큰 claim으로 구분해 링크 세션을 게스트처럼 제한하도록 개선했습니다.

문제 상황

  • 병원 전자문진 시스템의 링크 로그인에서 전화번호 뒤 4자리만으로 정식 회원의 회원 화면과 의료 관련 정보까지 접근 가능했던 보안 취약점
  • 화면과 API가 로그인 방식을 구분하지 않아 링크 세션이 게스트 수준으로 격하되지 않은 상태

원인 분석

  • 링크 로그인 시 발급된 정식 회원 토큰과 일반 로그인 토큰을 동일 세션처럼 취급한 설계
  • 로그인 방식 자체를 인증 정보로 저장하지 않아 프론트엔드와 백엔드에서 판별 불가

해결 방법

  • Keycloak User Session Note와 protocol mapper로 login_method=link claim을 토큰에 포함
  • 프론트엔드에서 공용 판별 유틸로 링크 세션을 식별해 제한 세션 범위를 통합 관리
  • 게스트 API는 회원 세션까지 허용하되, 본인 확인과 Redis 플래그로 재검증하는 방어 구조 유지

다음 읽기

#Keycloak 주제를 이어서 읽기

Keycloakify의 page_hint 상태 관리 개선

Keycloakify의 라운드트립 구조 때문에 `page_hint`를 단순히 React 상태처럼 다루면 새로고침 시 화면이 바뀌는 문제가 있었습니다. 마운트 시 무조건 삭제하던 로직을 진입 흐름에 맞게 조정해 직원 계정 최초 설정 화면을 유지했습니다.

넥스트리
넥스트리
프론트엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...