Keyword
HTTP 프로토콜의 특징
- Connectionless : 하나의 요청에 하나의 응답만 처리, 연결 종료. 새 요청이 있을 때 마다 항상 새로운 연결
- Stateless : 통신이 끝난 후 상태의 정보를 저장하지 않는 것
쿠키(Cookie) => ✨클라이언트 단에서 저장
HTTP에서 상태 유지를 위한 key-value 형태의 값,
서버가 클라이언트에게 쿠키를 발급. 클라이언트는 서버에 요청 시 매번 쿠키를 함께 전송하며 서버는 해당 쿠키를 확인해 클라이언트를 구분
쿠키 적용법
- 쿠키는 클라이언트와 서버 모두 설정이 가능
- 조회, 수정, 추가 : 클라이언트에 저장되므로, 조회, 수정, 추가가 가능
- 쿠키 헤더 변조 : 요청 헤더에 넣어 전송하므로, 클라이언트에서 요청 시 쿠키 헤더를 변조할 수 있음
- 만료시간 지정 : 쿠키 설정 시 만료시간 지정이 가능하고 만료시간 이후 클라이언트(브라우저)에서 쿠키가 삭제됨
세션(Session) => ✨서버 단에서 저장
클라이언트가 쿠키를 변조해 서버에 요청하는 사례로 인해 탄생
인증 정보를 서버에 저장하고 해당 데이터에 접근할 키(Session ID: 유추할 수 없는 랜덤 문자열)을 만들어 클라이언트에 전달.
서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증상태를 확인
세션 하이재킹 (Session Hijacking)
유저의 쿠키를 훔쳐 세션에 해당하는 이용자의 인증 정보를 획득하는 공격