Node.js에서 CORS(Cross-Origin Resource Sharing) 설정하기

김형진·2024년 2월 20일

Node.js

목록 보기
10/17
post-thumbnail

Node.js를 사용하여 웹 애플리케이션을 개발할 때, CORS(Cross-Origin Resource Sharing)는 자주 마주치게 되는 보안 이슈 중 하나입니다. 웹 브라우저의 보안 정책에 따라 다른 도메인 간에 리소스를 공유할 수 있는지 여부를 결정하는데, 이를 해결하기 위해 Node.js에서는 CORS 설정을 통해 서버의 보안을 강화하고 다른 도메인 간의 통신을 안전하게 관리할 수 있습니다. 이번 글에서는 Node.js에서 CORS를 설정하는 방법에 대해 알아보겠습니다.

CORS란 무엇인가요?

CORS는 웹 애플리케이션이 다른 도메인에서 리소스를 요청할 때 보안 상의 이슈를 다루는 메커니즘입니다. 웹 브라우저는 보안을 유지하기 위해 다른 출처(origin)에서 리소스를 가져오는 것을 제한합니다. 이는 XSS(Cross-Site Scripting) 및 CSRF(Cross-Site Request Forgery)와 같은 보안 공격을 방지하기 위한 조치입니다.

Node.js에서 CORS 설정하기

  1. cors 미들웨어 설치하기: 프로젝트 디렉터리에서 npm을 사용하여 cors 미들웨어를 설치합니다.
    npm install cors

  2. Express 애플리케이션에 cors 미들웨어 추가하기: Express 애플리케이션을 생성하고 cors 미들웨어를 사용하도록 설정합니다.

const express = require('express');
const cors = require('cors');
const app = express();

// 모든 요청에 대해 CORS를 허용하는 미들웨어 추가
app.use(cors());
  1. 특정 origin에 대한 CORS 허용하기: 특정한 origin에 대해서만 CORS를 허용하도록 설정할 수 있습니다.
const corsOptions = {
    origin: 'https://example.com',
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
};

app.use(cors(corsOptions));
  1. CORS 설정 확인하기: 서버에 CORS가 올바르게 설정되었는지 확인하려면, 요청에 대한 응답 헤더를 확인하여 Access-Control-Allow-Origin 및 다른 관련 헤더가 올바르게 설정되어 있는지 확인합니다.

마치며

Node.js에서 CORS 설정은 웹 애플리케이션의 보안을 강화하고 다른 도메인 간의 통신을 안전하게 관리하는 데 중요한 역할을 합니다. Express와 함께 사용되는 cors 미들웨어를 통해 간단하게 CORS를 설정할 수 있으며, 특정 origin에 대한 허용 여부도 설정할 수 있습니다. 이를 통해 서버의 보안을 유지하고 안전한 웹 애플리케이션을 개발할 수 있습니다.

0개의 댓글