728x90
우리가 사용하는 웹 HTTP 프로토콜은 Connectionless와 Stateless하다.
즉, 하나의 요청에 하나의 응답만 하고(Connectionless) 상태를 계속 저장하지 못한다.(Stateless)
그래서 웹 서버는 수많은 클라이언트 등을 구별하기 위해 Cookie와 Session을 사용한다.
1. Cookie (쿠키)
쿠키는 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면 클라이언트는 서버에 요청을 보낼 때 쿠키를 같이 전송한다.
예를 들어, 드림핵 서버에서 로그인을 해본 후 개발자도구로 확인하 cookie에 sessionid가 추가된 걸 볼 수 있다.
서버는 저 sessionid 쿠키 값을 기반으로 사용자를 인증할 것이다.
이 쿠키값을 그대로 복사해서 다른 환경에서 쿠키값을 붙여넣으면
똑같은 유저로 로그인이 되는 걸 확인할 수 있다.
만약 해커가 이 쿠키값을 변조하여 서버에 요청하면 위와 같이 다른 사용자로 접근이 가능할 수 있다.
그렇기 때문에 나온게 session이다.
2. Session (세션)
쿠키는 클라이언트에 저장하는 대신, 세션은 서버에 저장을 한 후 해당 데이터에 접근할 수 있는 키를 만들어 클라이언트에게 전달하는 방식으로 작동한다.
때문에 해커는 세션을 쉽게 탈취하거나 변조하기가 어렵다.
728x90
반응형
'Web Hacking > Information' 카테고리의 다른 글
Cross Site Scripting (XSS) 취약점 (0) | 2024.04.04 |
---|---|
xss bypass html인코딩 (0) | 2024.04.03 |
preg_match 함수 (1) | 2023.11.26 |
칼리 리눅스를 활용한 실전 모의해킹 (0) | 2023.11.20 |
SQL INJECTION 예방책 - prepared statement (0) | 2023.10.28 |