취미로 음악을 하는 개발자

쿠키 세션 캐시 본문

공대인/Theory

쿠키 세션 캐시

영월특별시 2019. 5. 21. 01:00
728x90

[쿠키]

: 인터넷 웹사이트에 접속할 때 웹사이트가 있는 서버에 의해 사용자의 컴퓨터에 저장되는 정보를 뜻함. 주로 로그인 정보나 장바구니 정보를 저장하는 용도로 쓴다. 사용자의 컴퓨터를 만질 수 있다면 누구라도 쿠키에 입력된 값을 확인할 수 있기 때문에 보안성이 없다.

 따라서 쿠키에는 중요 데이터가 입력되지 않고 오히려 세션에 중요 데이터를 저장합니다.


[세션]

: 서버에 저장되는 쿠키라고 생각하면 쉽다. 대신 쿠키가 변수를 저장한다면 캐시는 파일을 저장한다고 보면 된다. 쿠키와 다른 것은 서버에 저장되고, 서버에 직접 접근하지 않는 이상 세션 내의 데이터를 탈취하는 것은 어렵다. 로그인 정보나 개인정보 등 다른 사용자에게 보여지면 안되는 정보를 담고 있다. 서버는 사용자 하나 하나를 다 인식할 수 없는데 예를 들어 웹에 처음 접속한다고 했을 때,


1) 사용자가 처음 웹에 접속하면 서버는 세션을 하나 생성, 세션에 해당하는 쿠키를 사용자에게 생성

2) 서버는 해당하는 쿠키의 값을 가지고 세션이 있는지 검사한 뒤, 세션이 있으면 '이 사람이 그 사용자다.' 라고 판단

ex) PHP의 PHPSESSID, JSP의 JSESSIONID


하지만 변수명은 변경할 수 있기 때문에 사용자가 로그인되어 있는 동안 해당 세션 값을 누군가가 알아내서 자신의 세션 값을 피해자의 세션 값으로 변경하면 공격자는 피해자의 아이디로 로그인이 가능하다. (Session Hijacking)

방지하는 방법 중 하나는 세션에 로그인 했을 때의 IP를 저장해두고 페이지 이동을 할 때마다 현재 IP와 세션에 저장된 정보(UserAgent)가 같은지 검사하는 것이다. 완전히 막을 수는 없겠지만 어느 정도의 피해는 막을 수 있을 것이다.


[캐시]

: 홈페이지를 접속하면 css, js, 이미지 파일 등이 사용자의 브라우저에 저장이 되는데 그 후 다시 접속을 하게 되면 저장된 것들이 서버가 아닌 사용자의 PC에서 가져오게 된다. 이로써 얻는 이점은 처음 접속할 때에 저장을 해두면 다음 접속할 때 그만큼의 자원을 아낄 수 있다. 

 대신 이 때문에 발생하는 문제가 있는데 예를 들어 홈페이지의 이미지가 변경되었을 때 그 시점에서는 사용자의 이미지는 변경되지 않습니다. 이 때는 사용자 브루아저의 캐시를 지워주거나 서버에서 클라이언트로 응답을 보낼 때 header에 캐시 만료시간을 명시해주는 등이 있습니다.



출처 : http://blog.kurien.co.kr/544



'공대인 > Theory' 카테고리의 다른 글

컨테이너  (0) 2022.07.12
AES/CBC/PKCS7  (0) 2022.07.12
JSON JSP JS  (0) 2019.05.14
[TOPCIT] 소프트웨어 개발 및 관리  (0) 2019.05.11
[TOPCIT] 준비  (0) 2019.05.10
Comments