[Day100] NodeJS - 쿠키 파서(cookie-parser)

Validator·2023년 11월 9일
post-thumbnail

Express.js는 현재까지 가장 널리 사용되는 NodeJs 프레임워크 중 하나이며, 이에 익숙하다면 쿠키 관리는 그리 어렵지 않은 개념일 것이다.

HTTP 쿠키란 웹 서버에서 생성되어 클라이언트 측에 저장되는 작은 데이터 조각들이다. 서버가 클라이언트 측에 쿠키를 설정하기 위해 'Set-Cookie' 헤더와 함께 응답을 보낸다. 클라이언트는 이 응답을 받고 쿠키를 설정한다. 이후 클라이언트에서 서버로 보내는 모든 요청에는 이 쿠키 정보가 포함된다.


기본적인 개념 이해

1.1 HTTP 쿠키란?

HTTP 쿠키는 웹 서버가 사용자의 웹 브라우저에 저장하는 작은 데이터 조각이다. 이 데이터는 사용자가 동일한 웹사이트를 재방문할 때마다 브라우저를 통해 서버로 다시 전송된다. 쿠키는 세션 관리(로그인, 쇼핑카트), 개인화(사용자 선호, 테마) 및 트래킹(사용자 행동 분석)에 주로 사용된다.

1.2 Node.js와 Express.js

Node.js는 JavaScript를 서버 측 언어로 사용할 수 있게 해주는 환경이다. Express.js는 Node.js를 위한 빠르고 개방적인 웹 프레임워크로, 웹 애플리케이션을 구축할 때 필요한 기능들을 쉽고 효율적으로 사용할 수 있게 해준다.

cookie-parser는 Express.js의 미들웨어로, 들어오는 요청의 쿠키를 파싱해야 할 때 사용된다. 이 라이브러리는 요청된 쿠키를 쉽게 추출하고 조작할 수 있게 해준다. 사용자 인증, 세션 관리 등에 쿠키가 필요한 경우에 유용하다.

2.1 설치 방법

cookie-parser는 npm을 통해 쉽게 설치할 수 있다. 터미널에서 다음 명령을 실행한다:

npm install cookie-parser

2.2 Express 앱에 통합하기

Express 애플리케이션에 cookie-parser를 통합하는 과정은 매우 간단하다. 먼저, 라이브러리를 임포트하고 애플리케이션에 미들웨어로 추가한다.

const express = require('express');
const cookieParser = require('cookie-parser');

const app = express();
app.use(cookieParser());

2.3 쿠키 설정 및 접근

쿠키를 설정하거나 접근하는 것은 Express의 responserequest 객체를 통해 이루어진다.

쿠키 설정 예시:

app.get('/set-cookie', (req, res) => {
  res.cookie('name', 'value', { maxAge: 900000, httpOnly: true });
  res.send('Cookie is set');
});

쿠키 접근 예시:

app.get('/get-cookie', (req, res) => {
  const name = req.cookies.name;
  res.send(`Cookie value: ${name}`);
});

실제 사용 사례

3.1 사용자 인증

쿠키는 사용자 인증에 자주 사용된다. 로그인 후 사용자의 ID나 토큰을 쿠키에 저장하여, 사용자가 사이트에 재방문할 때 자동으로 인증할 수 있다.

3.2 세션 관리

웹사이트에서 사용자의 상태(예: 로그인

상태, 장바구니 항목)를 유지하기 위해 세션 쿠키를 사용할 수 있다.

3.3 개인화 및 설정

사용자의 선호도(예: 언어 설정, 테마)를 저장하여, 사용자가 사이트를 재방문할 때 개인화된 경험을 제공한다.

섹션 4: 보안 고려사항

4.1 httpOnlysecure 플래그

쿠키에 httpOnly 플래그를 설정하면 JavaScript를 통한 접근이 차단된다. 이는 XSS(크로스 사이트 스크립팅) 공격을 방지하는 데 도움이 된다. secure 플래그는 쿠키가 오직 HTTPS를 통해서만 전송되도록 한다.

4.2 쿠키의 만료 시간 설정

쿠키에 만료 시간을 설정하여 오래된 쿠키가 사용되지 않도록 한다. 이는 쿠키 탈취 및 오용의 위험을 줄인다.

0개의 댓글