쿠키와 세션

fndlfn·2023년 11월 20일

remind

목록 보기
24/25

쿠키

  • 클라이언트에 저장되며 클라이언트(브라우저)에서 조작이 가능하다.
  • 서버에서 쿠키를 직접 생성 할 수는 없지만 생성/삭제/수정 하라는 지시문을 보내서 쿠키 조작을 유도 할 수 있다.
  • 즉 쿠키를 서버와 클라이언트에서 모두 조작 가능하다.
  • 생성 된 모든 쿠키가 전송 되는것이 아니라 호출된 도메인에 해당하는 쿠키만 전송된다.

세션

  • WAS를 통해 저장되며 클라이언트가 조작이 불가능하다.
  • 딱 1번만 발급된다.
  • 응답에 실린 쿠키를 통해 발급받는다.
  • 고객에게 개인 공간을 배정하고 그 공간을 열 수 있는 키를 받는것과 비슷하다.
  • 브라우저에 접속 후 세션이 필요한 작업을 하지 않으면 세션이 생성되지 않는다.

쿠키와 세션 비교

  • 쿠키는 클라이언트가 데이터 조작을 할 수 있기 때문에 안전하지 않다.
  • 세션은 클라이언트가 데이터 조작 할 수 없기 때문에 안전하다.
  • 세션 이름을 전달 할 때 쿠키로 전송 하는것이 편해서 쿠키는 세션을 구분하기 위해 사용된다고 볼 수 있다.

세션 이름을 큰 난수성을 지니게 하고 길게 설정하는 이유

  • 충돌을 방지하고 유일성을 유지하기 위함

WAS : Web Application Server

  • 웹 애플리케이션을 실행하고 관리하는 서버이다.
  • WAS는 사용자가 웹 브라우저를 통해 액세스하는 웹 애플리케이션을 호스팅하고 실행하는 데 사용된다.
  • 우리가 실습에서 사용하는 Apache Tomcat도 WAS이다.

XSS(크로스 사이트 스크립팅)

  • 웹 애플리케이션에서 발생하는 보안 취약점이다.
  • 무작위 방식으로 세션 키 탈취가 어려워서 이런 공격을 시도한다.
  • 공격자가 악의적인 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격 기법이다.
  • 웹 페이지의 입력 필드나 URL 매개변수 등을 통해 스크립트 코드를 삽입해서 공격한다.
    • 사용자에게 보이는 콘텐츠를 변조
    • 쿠키 및 세션 정보를 탈취
    • 사용자를 다른 악의적인 사이트로 리다이렉트
    • 사용자의 계정을 조작
  • 이런 공격을 막기 위해 HttpOnly 기술이 도입됨

HttpOnly

  • 웹 서버가 브라우저에게 쿠키를 설정할 때 사용하는 속성
  • HttpOnly를 체크하면 브라우저는 JavaScript를 통해 해당 쿠키에 접근할 수 없기 때문에 쿠키를 수정하거나 하는 행동을 할 수 없음

0개의 댓글