Programming/Web (웹)

[프로그래밍] CORS란?

MOONCO 2022. 3. 23. 16:43

CORS란?

Cross-Origin Resource Sharing

서버와 통신가능한 도메인과 포트번호를 제한해놓는 기능. ( feat. URI란? - 도메인 설명 )

( 도메인에 따라,  리소스 공유할지 말지 조절! )

 

HTTP POST 요청에 대한 메타데이터를 먼저 보내고 ( 실제 데이터 아님 )

서버는 이 메타데이터가 안전하다고 파악할 때만, 요청을 허용한다.

( 악의적인 목적의 데이터를 서버로 보내지 못하도록 )

 

CORS 동작 방식

1. 보내고 싶은 요청에 대한 정보를 미리 전달 

* 아직 실제 요청은 하지 않는다.

주소 정보 (Origin)

메서드 정보 (POST)

헤더 정보 (X-PINGOTHER, Content-Type 등등)

 

2. 요청 정보를 바탕으로, 필요한 권한 허용

요청할 주소 (Origin) 확인

요청할 메서드 (POST) 확인

요청할 헤더 (X-PINGOTHER, Content-Type 등등) 확인

한정된 허용값 응답

 

3. 실제 요청 전송 - 허용된 주소, 메서드, 헤더만 사용가능

4. 권한에 맞는 응답 전송

 

CORS의 필요성

불필요한 요청이나 악의적인 요청에 응답하지 않을 수 있다. 
- 해킹방어, 서버자원 효율적 운용

 

반응형