728x90
반응형
| CORS (Cross-Origin Resource Sharing)
다른 출처(origin) 간의 자원 요청을 허용할지 말지를 웹 브라우저가 판단하도록 도와주는 HTTP 보안 메커니즘으로 Express용 미들웨어이다.
브라우저는 보안상의 이유로, 웹 페이지가 **다른 도메인(Origin)**의 서버에 요청하는 것을 기본적으로 차단한다.
예를들어,
프론트엔드 주소 : http://localhost:3000
백엔드 주소 : http://localhost:5000
이 둘은 "포트 번호가 다르므로" 다른 origin 으로 간주되고 요청을 보내면 브라우저가 CORS 정책 위반으로 에러를 일으킨다.
(Origin : 프로토콜 + 도메인 + 포트번호 조합)
해결방법은 백엔드에서 허용을 해주는 것이다.
| CORS설치
npm install cors
처음 백엔드 설치 작업할 때 기본적으로 설치해주면 편리하다.
| 요청 허용
server.js에 아래 코드를 넣으면 origin의 요청을 허용한다는 것이다.
const cors = require('cors');
app.use(cors());
| 특정 Origin만 허용
보통 로그인 인증이 필요한 상황(쿠키 등)에서 사용된다.
app.use(cors({
origin: 'http://localhost:3000',
credentials: true
}));
CORS는 프론트엔드와 백엔드가 다른 포트, 다른 도메인에 있을때 필요하고 API 요청이 발생하는 경우 꼭 필요하다.
728x90
반응형
'STUDY > ExpressJS' 카테고리의 다른 글
[3-3] 요청과 응답(req, res) methods (0) | 2023.12.22 |
---|---|
[7-1] 사용자 인증을 위한 passportjs (0) | 2023.12.08 |
[7-2] http의 취약점인 보안 강화를 위한 https (1) | 2023.12.06 |
[4-2] Express에서 정적 파일들을 제공하기 위한 미들웨어 - static (0) | 2023.05.24 |
[7-3] Express.js HTTP 보안강화 미들웨어 - helmet (0) | 2023.04.11 |