쿠키와 세션
쿠키
HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,
그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다.
HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다.
사용 예시
- 방문 사이트에서 로그인 시, "아이디와 비밀번호를 저장하시겠습니까?"
- 팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크
세션
일정 시간 동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다.
여기서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점을 말한다.
즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.
요약하자면, 쿠키는 클라이언트에 저장되고, 세션은 서버에 저장되어 각각 장기적인 상태 유지와 민감한 정보 관리에 적합합니다.
출처: https://dev-coco.tistory.com/61 [슬기로운 개발생활:티스토리]
JWT란?
- Json Web Token
- 클라이언트와 서버 간에 데이터를 안전하게 전송하기 위해 사용되는 토큰 기반 인증 방식입니다.
- JWT의 장점은 서버가 상태를 유지할 필요가 없기 때문에 확장성에 유리하다는 점입니다.
JWT 구조
JWT는 세 부분으로 구성됩니다: 헤더(Header), 페이로드(Payload), 그리고 서명(Signature)입니다.
- 헤더(Header)는 토큰 유형과 해싱 알고리즘 정보를 담고 있습니다.
- 페이로드(Payload)는 사용자 정보와 같은 데이터를 포함하며, 이는 클레임(Claims)이라고 부릅니다.
- 서명(Signature)은 헤더와 페이로드를 조합한 뒤, 비밀 키로 암호화하여 토큰의 무결성을 확인하는 역할을 합니다.
예를 들어, 헤더.페이로드.서명의 형식으로 인코딩된 JWT는 각 부분을 Base64로 인코딩하여 점(.)으로 연결합니다.
주의! JWT는 서명(Signature)을 통해 위변조는 방지할 수 있지만, Base64로 인코딩된 페이로드는 누구든 디코딩할 수 있기 때문에 탈취된 경우 해커가 토큰에 포함된 정보를 볼 수 있습니다.
SOP와 CORS
SOP(Same Origin Policy)
다른 출처의 웹 페이지가 사용자 정보를 무단으로 접근하거나 변경하지 못하도록 방지하는 브라우저 보안 정책
CORS(Cross Origin Resource Sharing)
SOP 제한을 완화하여 다른 출처의 리소스를 사용할 수 있도록 허용하는 메커니즘. 이를 통해 서버는 특정 출처에서 오는 요청을 허용하거나 거부할 수 있다.
요약하자면, SOP는 보안을 위해 리소스 접근을 동일 출처로 제한하는 정책이고, CORS는 이를 제어하여 특정 다른 출처와의 리소스 공유를 허용할 수 있게 해주는 방법입니다.
궁금한점
- CORS 동작 방식은?
'외부활동 > JSCODE 네트워크' 카테고리의 다른 글
RESTful하게 개발한다는 건 뭘까? (0) | 2024.11.16 |
---|---|
[3주차] REST API, 웹 보안 (0) | 2024.11.15 |
[2주차] DNS (0) | 2024.11.08 |
[2주차] HTTPS (0) | 2024.11.08 |
[2주차] HTTP (0) | 2024.11.08 |