티스토리 뷰

보안관련 쿠키 설정 및 요청 메소드 응답 상태코드

 

HTTP 프로토콜 특징

1.비연결형 프로토콜

요즘은 다양한 멀티미디어 데이터가 있음 

과거에는 Text만 주고받았는데 요즘은 이게 좀 맞지 않음 

 1)웹 브라우저 요청

 2)TCP 연결 설정

 3)HTTP 요청 메시지 

 4)웹서버 요청 처리

 5)HTTP 응답 메시지

 6)TCP연결 종료

 자원을 요청하는 태그를 보고 추가 자원 요청이 발생 

 어떤 응답데이터 안에 이미지가 들어 있는게 아님

 가령 스크립트를 요청한다고 할때 

 <script src="자원 URL"~ "이 스크립트를 URL을 통해서 추가 요청을 해라"라는 의미>

304응답 redirection응답 //Not Modified : 너의 로컬에 있는 캐시 데이터가 변경 되지 않았기때문에 그냥 써라

 7)응답 메시지 분석(Parsing):이미지 등 추가 자원 요청 

 8)TCP연결~~~종료 

 9)TCP연결~~~종료

 10)TCP연결~~~종료

연결을 바로 종료하는 이유는 제한된 서버(웹 서버) 연결 자원을 이용하여 최대한 많은 클라이언트의 요청을 처리하기 위함이다.

ps -ef | grep httpd

netstat -antp | grep httpd

 

Burp Suite //웹 프락시 

wireshark를 통해서 실습하기 

cooxie라는 툴을 통해서 설정

 

HTTP/1.1 버전부터 Connection 헤더에 Keep-Alive 옵션이 추가 되었다.

Connection 옵션에 Keep-alive 가 추가됨 (일정 시간 유지)

 

 1)웹 브라우저 요청

 2)TCP 연결 설정

 3)HTTP 요청 메시지 

 4)웹서버 요청 처리

 5)HTTP 응답 메시지

 6)응답 메시지 분석(Parsing):이미지 등 추가 자원 요청 

 7)TCP 연결 종료

TCP연결 설정 및 종료에 대한 부하를 줄이면서 효율적으로 클라이언트 요청을 처리하기 위해 연결 상태를 일정시간 유지하는 옵션이 추가

timeout = 연결 지속 시간 , max = 최대 요청 건수

 

httpd.conf //아파치 웹서버 환경설정 파일

http1.1버전 wireshark 패킷 캡처

2.상태정보를 유지하지 않는 프로토콜

동일 클라이언트의 현재 요청과 이전 요청을 식별하지 못한다는 의미 

http프로토콜 수준에서는 어떠한 정보도 없음 .웹 서버 입장에서는 모든 요청이 매번 새로움 

클라이언트를 식별하지 못함. 클라이언트의 어떠한 상태정보도 유지하지 않는다. 

 

http에는 상태정보를 유지하기 위한 기술이 없어서 -> 웹 서비스를 하기 위해 상태정보 유지가 필요할때는 

클라이언트측 기술: 쿠키 서버측 기술 : Session이 있다.

클라이언트 상태정보를 지속적으로 유지하기 위한 기술

 

쿠키방식 

쿠키는 개별 클라이언트 상태 정보를 HTTP 요청/응답 헤더에 담아서 전달하는 작은 정보/데이터를 말한다.

웹서버에서 쿠키 정보를 만들어서 set-cookie라는 응답헤더에 에 쿠키를 담아서 전달 

웹 클라리언트는 쿠키헤더에 아까 받은 쿠키 정보를 받아서 요청

 

영속쿠키(Persistent Cookie)와 세션쿠키(Session Cookie)로 구분 

 

보안취약점

쿠키방식은 클라이언트 상태정보를 클라이언트에 저장하고 HTTP 요청/응답 헤더에 담아서 전달하기 때문에 해킹 및 스니핑 공격에 의한 변조와 외부 노출에 취약한 특성 

따라서 중요 정보를 저장할 경우에는 쿠키 방식이 아닌 서버에 상태정보를 저장하는 세션방식이 안전하며 부득이하게 쿠키를 사용해야 할 경우에는 암호화를 적용해야 한다.

ex) 팝업정보(오늘하루만 보기)->쿠키방식

 

세션방식

개별 클라이언트 상태정보를 "서버에 저장"하는 기술

Web server 

algisa 세션 객체 생성 

세션 타임아웃 설정 : 일정 시간 , 해당 세션으로 요청이 없으면 세션은 소멸

웹 브라우저에 메모리 상에 세션쿠키 저장 

클라이언트를 식별하기 위한키를 Session ID 라고 한다. (실제로는 임의의 난수값으로 사용)

사용자가 지속적으로 쇼핑하면서 구매하려고 하는 물품을 넣어둠 

알기사란 사람이 들어와서 세션ID라는 정보를 주지 않으면

세션 ID를 식별하는 이름 : phpsessid , jsessionid

클라이언트가 주는 sessionid말고는 정보가 없음

http session hijacking 세션 id 정보를 탈취해서 정상적인 사용자 인 것 처럼 위장 한것

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함