민팽로그

웹의 인증 및 인가/쿠키와 세션 본문

📚소소한 스터디

웹의 인증 및 인가/쿠키와 세션

민팽 2021. 9. 12. 23:03
인증 및 인가

 

- 인증(Authentication): 사용자의 신원을 확인하는 행위

- 인가(Authorization): 사용자 권한을 확인하는 행위

 

즉, 아이디와 비밀번호를 입력을 통해 로그인하여 본인임을 확인하는 과정이 인증, 로그인 후 사용자의 역할에 따라 권한을 부여하는 것이 인가이다. 인가의 예로 웹 카페같은 온라인 커뮤니티에서 회원 등급 별 사용할 수 있는 게시판이 다른 것을 들 수 있다.

 

쿠키와 세션

HTTP는 상태를 저장하지 않아 같은 클라이언트가 요청했는지 알 수 없음

1번과 2번이 같은 클라이언트의 요청인지 알 수 없음

 

-> 쿠키와 세션은 HTTP에 상태 정보를 유지하기 위해 사용됨. 즉, 쿠키와 세션을 통해 서버에서 클라이언트 별로 인증 및 인가를 할 수 있음

 

쿠키

- 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일

- 크롬 브라우저의 개발자도구(F12)를 열어 확인 가능: Application > Storage > Cookies

- 구성 요소: Name, Value, Domain, Path, Expires

Name: 쿠키를 구별하기 위해 사용되는 키(중복 불가)
Value: 쿠키의 값
Domain: 쿠키가 저장된 도메인
Path: 쿠키가 사용되는 경로
Expires: 쿠키 만료기한(만료기간 후 삭제됨)

 

세션

- 서버에 일정시간 동안 클라이언트의 상태를 유지하기 위해 사용

- 서버에서 클라이언트 별로 세션ID를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장

- 서버에서 생성한 세션ID는 클라이언트의 쿠키값(세션 쿠키)으로 저장되어 클라이언트 식별에 사용됨

세션 동작 방식

 

쿠키와 세션 비교

  쿠키 세션
설명 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 서버에 일정 기간동안 클라이언트의 상태를 유지하기 위해 사용
저장 위치 클라이언트(웹 브라우저) 웹 서버
사용 예 사이트 팝업의 "오늘 다시보지 않기" 정보 저장 로그인 정보 저장
만료 시점 쿠키 저장 시 만료시점 설정 가능(브라우저 종료 시에도 유지 가능) 아래 조건 중 하나가 만족될 경우 만료
1. 브라우저 종료
2. 클라이언트 로그아웃 시
3. 서버에 설정한 유지기간까지 해당 클라이언트의 재요청이 없는 경우
용량 제한 브라우저 별 다름(크롬 기준)
- 하나의 도메인 당 180개
- 하나의 쿠키 당 4KB
세션 저장소 크기 내에서 제한 없음
보안 취약: 클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있음 비교적 안전: 서버에 저장되기 때문에 상대적으로 안전함

 

'📚소소한 스터디' 카테고리의 다른 글

[python 에러 해결] SSL: CERTIFICATE_VERIFY_FAILED  (0) 2021.10.11
연구과제 참고 목록  (0) 2021.10.01
[HTML] form, fieldset , input 태그  (0) 2021.09.06
URI와 URL  (0) 2021.09.05
자주 사용하는 리눅스 명령어  (0) 2021.08.24
Comments