일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- BOF
- C언어 알고리즘
- 파이썬신경망
- 신경망 학습
- 소프트맥스함수
- 알고리즘
- C언어알고리즘
- c언어
- 신경망구현
- 인공지능
- 밑바닥부터시작하는딥러닝
- 버퍼오버플로우
- FTZlevel10
- 신경망파이썬
- 딥러닝
- 스트림암호
- 신경망
- BOJ
- 보안
- 백준
- 정보보안
- 머신러닝
- 딥러닝파이썬
- 백준알고리즘
- 달고나bof
- C알고리즘
- 활성화함수파이썬
- 항등함수
- 8086CPU레지스터
- 파이썬
- Today
- Total
HeeJ's
[02] 쿠키와 세션 본문
1. 쿠키?
쿠키란 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다.
클라이언트의 상태 정보를 로컬에 저장했다가 요청 시 참조한다.
클라이언트에 300개까지의 쿠키가 저장 가능하며, 하나의 도메인 당 20개의 값만 가질 수 있다. 최대 크기는 4KB
쿠키는 서버 측에서 만료 날짜/시간을 지정해 정해진 시간동안 데이터를 유지할 수 있다.
쿠키의 구성요소
이름 | 각각의 쿠키를 구별하는데 사용 |
값 | 쿠키의 이름과 관련된 값 |
유효시간 | 쿠키의 유지시간 |
도메인 | 쿠키를 전송할 도메인 |
경로 | 쿠키를 전송할 요청 경로 |
쿠키의 동작 방식
1. 클라이언트가 페이지를 요청
2. 서버에서 쿠키를 생성
3. HTTP 헤더에 쿠키를 포함시켜 응답
4. 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관
5. 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보냄
6. 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답.
세션 쿠키와 지속 쿠키
만료 날짜/시간을 지정하지 않으면 항상 유지하라는 것으로 판단해 지속 쿠키에 저장
만료 날짜/ 시간을 지정하면 세션 쿠키로 저장
-----
세션 쿠키는 브라우저 메모리에 저장되므로 브라우저가 종료되면 쿠키는 사라진다.
지속 쿠키는 파일로 저장되므로 브라우저가 종료되어도 쿠키가 남아있다.
쿠키의 사용 예
- 방문 사이트 로그인 시 아이디와 비밀번호 저장하기
- 쇼핑몰의 장바구니 기능
- 팝업에서 "오늘 더 이상 이 창을 보지 않음" 기능 등
2. 세션?
쿠키를 기반으로 하지만 사용자 정보 파일을 브라우저가 아닌 서버 측에서 관리한다.
서버에서 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해 브라우저를 종료할 때 까지 인증상태 유지
접속 시간에 제한을 두어 일정 시간 응답이 없으면 정보가 유지되지 않게 설정
쿠키보다 보안에 좋지만(정보를 서버에 저장), 사용자가 많아질 수록 서버 메모리를 많이 차지함
-> 동접자 수가 많은 웹 사이트인 경우 서버에 과부하를 주어 성능 저하를 야기할 수 있음
세션의 동작 방식
1. 클라이언트가 서버에 접속 시 세션 ID를 발급
2. 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장하고 보관
3. 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 서버에 전달해서 사용
4. 서버는 세션 ID를 전달받아 별다른 작업없이 세션 ID로 세션에 있는 클라이언트 정보를 가져옴
5. 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답
세션의 특징
각 클라이언트에게 고유 ID 부여
세션 ID로 클라이언트 구분해서 클라이언트의 요구에 맞는 서비스 제공
쿠키보다 보안에 우수
사용자가 많아질수록 서버 메모리 많이 차지
세션의 사용 예
로그인과 같은 보안상 중요한 작업 수행 시 사용
쿠키와 세션의 차이
- 세션도 쿠키를 사용하기 때문에 동작원리는 비슷하다.
- 가장 큰 차이점은 정보가 저장되는 위치이다.
-> 쿠키는 서버의 자원을 전혀 사용하지 않으며, 세션은 서버의 자원을 사용한다.
- 보안에서 우수 : 세션 / 요청속도 빠름 : 쿠키
-> 세션은 서버의 처리가 필요하다.
- 쿠키는 클라이언트 로컬에 저장되어 변질되거나 스니핑 당할 우려가 있어 보안에 취약하지만 세션은 쿠키를 이용해 세션ID만 저장하고 그 것으로 구분해 서버에서 처리하기 때문에 비교적 보안성이 좋다.
- 속도, 쿠키에 정보가 있기 때문에 서버에 요청시 속도가 빠르고 세션은 정보가 서버에 있기 때문에 처리가 요구되어 비교적 느린 속도를 낸다.
쿠키와 세션을 사용하는 이유
- HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용
[출처]
1. https://interconnection.tistory.com/74
2. https://jeong-pro.tistory.com/80
'<Information Security> > <Web Hacking>' 카테고리의 다른 글
[01] Robots.txt (0) | 2020.08.06 |
---|