자바스크립트 정리

쿠키(Cookie)

알럽유 2023. 7. 17. 10:03
728x90
반응형

Cookie

▶클라이언트에서 저장,관리하는 데이터들.브라우저를 닫아도 데이터를 유지할 수있다.

▶서버에서 Set_Cookie를 응답 헤더로 내려주면 클라이언트는 받아서 저장한다.

▶클라이언트에서 자체적으로 조작할 수 있다.

▶각 상태에 수명을 정할 수 있다. 

Set-Cookie

▶Set-Cookie: 키= 값; 옵션

▶응답 헤더에 담으면 브라우저가 알아서 저장한다

▶각 데이터엔 여러 옵션이 존재한다.

    ▶Expires: 쿠키 만료 날짜를 지정한다.

    ▶Secure: HTTPS에서만 쿠키를 전송한다.

    ▶HttpOnly: JavaScript에서 큐키에 접근하지 못하도록 막는다.

    ▶Max-Age: 쿠키 수명을 정한다. 이때 Expires는 무시된다.

    ▶Doomain: 도메인이 일치하는 요청만 쿠키가 전송된다.

    ▶Path: 패스와 일치하는 요청만 쿠키가 전송된다.

쿠키의 취약점

▶XSS(Cross-Site Script)공격을 당할 수 있다.

    ▶JavaScript를 이용해 악의적인 사용자가 다른 사용자의 쿠키값을 탈취 할 수 있다.

    ▶쿠키를 암호화 하지 않고 보내면 쿠키값을 중간에 탈취 당할 가능성이 있다.

        ▶HTTPs

Session

▶HTTP Session Id를 식별자를 구분한다.

▶클라이언트는 HTTP Session Id를 쿠키 형태로 저장한다.

▶서버 자체적으로 기록한다.

세션의 문제점

▶세션은 서버에 파일로 저장된다. 만약 사용자가 엄청 많아지면

▶서버가 만약 2대라면 세션은 어떻게 관리 해야할까

- 이제 서버와 클라이언트간 인증은 별도 토큰을 사용하고

  쿠키는 클라이언트 자체적인 지속적인 데이터 관리 용도로 많이 사용된다.

웹 스토리지

▶클라이언트에 데이터를 저장하기 위한 새로운 방법

▶HTML5부터 등장했다.

▶쿠키에서 하기 힘든 것들을 지원하기 위해 등장했다.

로컬 스토리지세션 스토리지가 있다.

로컬 스토리지

▶로컬 스톨지에 데이터를 저장하면 반영구적으로 데이터가 저장된다.

▶브라우저 종료해도 계속해서 데이터가 남는다.

▶저장했던 도메인과 이용하는 도메인이 다른 경우엔 접근할 수 없다.

▶쿠키와 마찬가지로 Key-Value형태로 저장한다.

세션 스토리지

▶새 창을 생성할 때마다 개별적으로 저장되는 데이터를 관리한다.

▶브라우저를 닫는 순간 사라진다.

▶같은 도메인이어도 세션이 다르면 데이터에 접근할 수 없다.

▶쿠키와 마찬가지로 Key-Value 형태로 저장한다.