HTTP
[HTTP] CORS
개발하면서 자주 만나는 CORS 오류의 원리를 정리합니다.
CORS

- SOP 정책 Same Origin Policy (브라우저의 출처와 요청하는 서버의 출처가 같을 때만 데이터를 주고받을 수 있음)

- CORS 정책 Cross Origin Resource Sharing (SOP의 제약이 너무 엄격해서, 다른 출처의 요청을 허용할 수 있게 완화하는 정책)
CORS는 원래 SOP 때문에 막힐 요청을 정해진 조건에서 허용해 주는 정책입니다. 요청을 막는 정책처럼 느껴지지만, 실제로는 다른 출처에 요청을 보낼 수 있도록 돕는 정책입니다.

프록시 서버를 거치면 CORS 제약 없이 데이터를 받을 수 있습니다. 여기서 알 수 있는 점은 CORS를 막는 주체가 브라우저라는 것입니다. 그래서 브라우저가 아닌 모바일 앱이나 서버에서는 CORS 제약 없이 요청할 수 있습니다.

CORS는 백엔드가 아니라 브라우저 사용자를 보호하기 위한 정책입니다. 예를 들어 악성 사이트가 브라우저에 남아 있는 로그인 정보를 이용해 다른 사이트로 요청을 보내는 공격을 CSRF라고 하는데, 출처를 제한하면 이런 위험을 줄일 수 있습니다.
댓글 0