1. HTTP 프로토콜의 명령어과 상태코드, 쿠키와 세션쿠키, 인코딩스키마

2020. 5. 1. 12:02정보보안/웹 어플리케이션 해킹

728x90
HTTP 프로토콜

HTTP의 요청 및 응답 프로토콜 필드의 자세한 사항은 「RFC 2616」 에 정의되어 있다.

 

* RFC (Request for Comments) : IETF(Internet Enginnering Task Force)에서 제정한 인터넷 통신을 위한 표준을 정의한 문서명

 

 

HTTP 프로토콜 명령어

POST : 데이터는 REQUEST Body에 포함 시킨다. 전송 데이터의 제한이 없다

POST login.asp HTTP/1.1

id=admin&pass=123

GET : 데이터를 URI에 포함시킨다. 전송할수 있는 데이터의 량은 <=255자 이다.

GET login.asp?id=admin&pass=123

 

PUT : 파일 업로드 (자원생성), jsp 업로드

PUT login.asp/Test.txt HTTP/1.1

DELETE : 파일 삭제

DELETE login.asp/Test.txt HTTP/1.1

 

HTTP 프로토콜 상태코드

웹 서버 메시지

의미

내용

100 번대

정보전송

임시적인 응답을 나타내는 것은 Status-Line과 선택적인 헤더들로 구성되어 있고 빈 줄로 끝을 맺음

200 번대

성공

200 - 요청 성공 / 201 - 원격지서버에 파일 생성

300 번대

리다이렉션

302 - 페이지이동 / 304 - 로컬 캐쉬정보 이용

400 번대

클라이언트측 에러

401 - 인증 실패 / 403 - 접근금지(페이지는 존재하나 권한없음) / 404 - 페이지 없음

500 번대

서버측 에러

500 - 서버에러

 

쿠키와 세션쿠키

1. 쿠키: 서버쪽에 인증 정보가 없음(서버에서 검증하지 않는다). 조작이 가능하다. 쿠키는 User의 Harddisk에 저장한다.

 

브라우져별 쿠기 저장 위치

  • IE : C\Users\사용자\Appdata\Roaming|Microsoft\Windows\Cookies
  • Chrome : C\Users\사용자\Appdata\Local\Google\Chrome\User Data\Default\Cache
  • FireFox : C\Users\사용자\Appdata\Roaming\Mozilla\Firefox\Profiles\<some profile number>.default\cookies.sqlite
  • Safari : C\Users\사용자\Appdata\Roaming\AppleComputer\Safari\Cookies\Cookies.plist

 

2. 세션 : 서버에서 검증한다. 세션은 서버에서 발행하여 유저의 로그인을 식별한다.

보안상 세션을 사용할 것을 권장

 

인코딩 스키마

인코딩 : 의미는 같으나 데이터 표현 형식이 다른 것을 말함, 인코딩은 암호화로 사용할 수 없음 (디코딩으로 해독 가능)

 

1. URL 인코딩 : 「%인코딩」 이라고도 부르며, 데이터의 형식을 바꿀 뿐 암호화로는 사용 불가능
   - 특히 URL에는 메타문자로 ?(파라미터 넘겨줄 때), &(파라미터구분자), =(파라미터 전달자), +(공백문자) 가 많이 사용된다

 

2. Base64인코딩 : Binary를 6bit 씩 끊어서 표현한다. ASCII 형태로 표현되며, 특징으로는 padding(==) 을 가진다.

 

3. HTML 인코딩 : 「&」로 시작하여 「;」 로 끝나는 특징이 있다.

공백 &nbsp & &amp;
< &lt; ' &apos;
> &gt; " &quit;