NestJS Logo

CSRF 보호

사이트 간 요청 위조(CSRF 또는 XSRF)는 신뢰할 수 있는 사용자가 웹 애플리케이션에 승인되지 않은 명령을 보내는 공격 유형입니다. 이를 방지하기 위해 csrf-csrf 패키지를 사용할 수 있습니다.

Express와 함께 사용 (기본값)#

필요한 패키지를 설치하는 것부터 시작합니다.


$ npm i csrf-csrf
경고csrf-csrf 문서에 명시된 바와 같이, 이 미들웨어는 사전에 세션 미들웨어 또는 cookie-parser가 초기화되어 있어야 합니다. 자세한 내용은 문서를 참조하십시오.

설치가 완료되면 csrf-csrf 미들웨어를 전역 미들웨어로 등록합니다.


import { doubleCsrf } from 'csrf-csrf';
// ...
// 초기화 파일 어딘가에
const {
  invalidCsrfTokenError, // 사용자 정의 미들웨어를 만들 계획이라면 순전히 편의를 위해 제공됩니다.
  generateToken, // CSRF 해시와 토큰 쿠키 및 토큰을 생성하고 제공하기 위해 라우트에서 사용합니다.
  validateRequest, // 사용자 정의 미들웨어를 만들 계획이라면 또한 편의를 위해 제공됩니다.
  doubleCsrfProtection, // 이것은 기본 CSRF 보호 미들웨어입니다.
} = doubleCsrf(doubleCsrfOptions);
app.use(doubleCsrfProtection);

Fastify와 함께 사용#

필요한 패키지를 설치하는 것부터 시작합니다.


$ npm i --save @fastify/csrf-protection

설치가 완료되면 다음과 같이 @fastify/csrf-protection 플러그인을 등록합니다.


import fastifyCsrf from '@fastify/csrf-protection';
// ...
// 일부 스토리지 플러그인 등록 후 초기화 파일 어딘가에
await app.register(fastifyCsrf);
경고 [@fastify/csrf-protection] 문서의 여기에 설명된 바와 같이, 이 플러그인은 스토리지 플러그인이 먼저 초기화되어 있어야 합니다. 자세한 내용은 해당 문서를 참조하십시오.

Support us

Nest is an MIT-licensed open source project. It can grow thanks to the support by these awesome people. If you'd like to join them, please read more here.

Principal Sponsors

Trilon LogoMojam Logo

Sponsors / Partners

Become a sponsor