TIL&WIL/TIL

CORS [ TIL ] [ node.js ]

muyeon 2023. 7. 16. 13:51

 

Problem

 

배포를 완료하고 프론트에 데이터를 주었는데 프론트에서 CORS 오류가 발견됨


Try

 

npm i cors
// app.js

// ...
const cors = require("cors");

// ...

let corsOptions = {
  origin: "*",
  credential: true,
};

// ...

 


Solve

 

옵션에 origin 을 여러번 바꿔보았으나 프론트에 문제가 계속되었고, 위의 코드로 변경 후,

프론트에서 CORS 관련된 코드를 모두 제거하니 해결 되었다.

 


What I Learned

 

CORS 에 대해 배웠다.

CORS 는 브라우저에서 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 요청을 하려면 서버의 동의가 필요한데

동의를 하지 않는다면 브라우저에서 거절한다.

즉 브라우저에서 cross-origin 요청을 안전하게 할 수 있도록 하는 것이다.

 

그래서 cross-origin 은 다음중 한가지라도 다른 경우이다. 프로토콜, 도메인, 포트번호

 

CORS 이 왜필요하냐면 모든곳에서 데이터 요청을 할 수 있게 되면 다른 사이트에서 원래 사이트를 흉내낼 수 있게됩니다. 흉내내서 사용자가 로그인하게 만들고, 세션을 탈취해 정보를 뺏을 수 있다.

 

이렇게 CORS 에 대해 알게되었고, 왜 사용되는지 알 수 있었다.