개발세발보안중
웹해킹 쿠키/인코딩&디코딩 본문
1. 쿠키
쿠키/세션/캐시
쿠키: 사이트를 방문하고 이용할 때 브라우저에 저장되는 내용 (클라이언트 정보)
- 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장
- 쿠키의 한계: 사용자가 수정 가능, 열람 쉬움
- 쿠키를 쓰는 이유: HTTP는 Connectionless과 Stateless 특징을 갖고 있기 때문에 로그인을 유지하기 위해서 쿠키가 필요함
ex) 네이버 로그인 유지
세션: 브라우저가 종료되기 전까지 클라이언트의 요청을 유지하게 해주는 기술
- 쿠키에 저장하기 곤란한 정보들을 세션에 저장
- 세션을 사용하는 서비스에 접속하면 서버에서는 사용자들을 구분하기 위한 기한이 짧은 쿠키
쿠키vs세션
- 저장 위치- 쿠키:로컬, 세션:로컬&서버
- 보안: 쿠키는 탈취와 변조가 가능, 세션은ID값만 가지고 있고 서버에도 저장이 되어있기 때문에 상대적으로 안전
캐시: 클라이언트 자체에서 페이지 로드를 효율적으로 하기위해 저장하는 데이터
vs 쿠키: '서버의 필요에 의해' 클라이언트에 저장하는 데이터
캐시 vs 쿠키
목적의 차이: 캐시는 웹페이지가 빠르게 렌더링 할 수 있도록 도와주고, 쿠키는 사용자의 인증을 도움
삭제: 캐시는 사용자가 수동으로 삭제, 쿠키는 만료기간이 지나면 자동으로 삭제
"쿠키는 위변조가 가능하기에 해킹이 쉽다"
2. 인코딩&디코딩
인코딩: 동영상이나 문자 인코딩 뿐 아니라 사람이 인지할 수 있는 형태의 데이터를 약속된 규칙에 의해 컴퓨터가 사용하는 0과 1로 변환하는 과정
-> 암호화로는 사용 불가* 100%디코딩(해독)되기 때문에 인코딩이랑 암호화는 같은 뜻이 아님!
Base 64: 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 콩통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식
과정: 원본 문자열 > ASCII binary > 6bit로 cut > base64 encoding
24bit 단위가 아닐경우에는? 값이 모자름...남은 공간을 0으로 채워주는 패딩을 이용
URL 인코딩 : 문자나 특수문자를 웹 서버와 브라우저에서 보편적으로 허용되는 형식으로 바꾸는 메커니즘 (URL에 쓰인 텍스트를 모든 브라우저에 똑바로 전송하기 위해 존재)
URL에 아스키코드 외의 문자가 포함되면 안되기 때문에 유효한 아스키코드 형식으로 변환해야한다(한국어 URL에 못들어감)
방법?
- 영어/문자: URL인코딩 표 참조
- 한글: 인코딩 프로그램 이용
디코딩: 부호화된 정보를 부호화되기 전으로 되돌리는 과정
'Webhacking' 카테고리의 다른 글
| XSS (0) | 2022.10.31 |
|---|---|
| 웹 (0) | 2022.09.26 |