Web Hacking/Information

Cookie & Session (쿠키와 세션)

프레딕 2024. 3. 28. 17:22
728x90

우리가 사용하는 웹 HTTP 프로토콜은 Connectionless와 Stateless하다. 

즉, 하나의 요청에 하나의 응답만 하고(Connectionless)  상태를 계속 저장하지 못한다.(Stateless)

그래서 웹 서버는 수많은 클라이언트 등을 구별하기 위해 CookieSession을 사용한다.

 

1. Cookie (쿠키)

쿠키는 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면 클라이언트는 서버에 요청을 보낼 때 쿠키를 같이 전송한다.

예를 들어, 드림핵 서버에서 로그인을 해본 후 개발자도구로 확인하 cookie에 sessionid가 추가된 걸 볼 수 있다.

서버는 저 sessionid 쿠키 값을 기반으로 사용자를 인증할 것이다.

 

이 쿠키값을 그대로 복사해서 다른 환경에서 쿠키값을 붙여넣으면 

쿠키값 복붙
로그인 되는걸 확인

똑같은 유저로 로그인이 되는 걸 확인할 수 있다.

 

만약 해커가 이 쿠키값을 변조하여 서버에 요청하면 위와 같이 다른 사용자로 접근이 가능할 수 있다.

그렇기 때문에 나온게 session이다.

 

2. Session (세션)

쿠키는 클라이언트에 저장하는 대신, 세션은 서버에 저장을 한 후 해당 데이터에 접근할 수 있는 키를 만들어 클라이언트에게 전달하는 방식으로 작동한다.

때문에 해커는 세션을 쉽게 탈취하거나 변조하기가 어렵다.

 

728x90
반응형