인증

개발하는개발자·2023년 12월 6일
0

Spring

목록 보기
6/6

J세션
1. 서버가 유저 인증
2. 세션 토큰 생성후, 특정 db에 세션 id저장
3. 서버는 브라우저에 session ID 쿠키 전달
4. 브라우저는 모든 요청리퀘스트에 쿠키정보를 포함해서 검증
5. 서버가 쿠키의 세션토큰을 받으면
1.db로 가서 탐색
2.유저 인증
3.요청 수행

장점

  1. 세션 아이디가 사라지면 명확히 로그아웃 가능
  2. 20년 동안 사용되어온 경력

단점

  1. 매번 DB call의 성능 저하 (인메모리 db로 극복)

  2. 세션기반 인증은 XSS공격에 취약, 유저 세션 ID를 해커가 습득가능
    -> cookie 접근 설정 강화

  3. SQL 인젝션, file inclusion attack같은 서버사이드 취약점을 보호 못함

JWT

1.유저 요청
2. 유저 인증, JWT토큰 생성
3. 유저의 요청마다 jwt 토큰 사용 , db접근 안함

장점

  1. 각기 다른 서버에서 세션에 저장하지 않고 인증가능
  2. db콜 필요없음

단점

  1. 유저가 로그아웃해도 토큰이 남아있으면 탈취하여 접근가능, 서버에서 조치
  2. 누구나 man-in-middle, sniff공격으로 접근 가능
  3. jwt 정보저장의 한계, 해독하고 검증하는 단계에서 오버헤드 발생
profile
하루에 하나씩 배우자

0개의 댓글