CORS multiple origin

김주빈·2020년 4월 8일
2

CORS

목록 보기
1/1

CORS 는 보안상의 이유로 1개의 서버에서 1개의 리소스만 공유되던것을 다른 자원에 접근할수 있게 하는 정책이다.
CORS 를 설정할때 'Access-Control-Allow-Origin' 옵션을 , , none 으로 설정할수 있는데 보안상 (모두가 사용가능) 이 아닌 특정한 몇몇 origin 을 설정하고 싶어서 이것저것 시도해봤다.

'https://www.google.com https://www.naver.com' // 구글과 네이버 둘다 작동되지 않는다,
['https://www.google.com', 'https://www.naver.com'] // 역시 작동하지 않는다.
`https://www.${google || naver}.com // google 에서만 작동된다.

방법을 찾던중 request.headers 를 통해 origin을 접근할수 있다는것을 발견했다.
따라서

const server = http.createServer((req, res) => {
  let headers = {
    //cors 설정	
  }
  const origins = ['https://www.google.com', 'https://www.naver.com'];
    let reqOrigin = req.headers.origin;
    if(origins.indexOf(reqOrigin) > -1) {
      //origins 안에 reqOrigin 이 존재한다면
      headers['access-control-allow-origin'] = reqOrigin;
    }
}

을 통해 여러개의 cors allow origin 을 설정할수 있다.

profile
프론트엔드 개발자 김 주빈 입니다.

0개의 댓글