[WEB] CORS

ktmihs·2022년 1월 3일
0

WEB

목록 보기
2/4
post-thumbnail

SOP (same-origin policy)

  • 동일 출처 정책
  • protocol(scheme), host, port가 일치하면 동일한 출처(origin)로 본다.
    - path 이후가 다른 것은 동일한 출처로 본다.
  • 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식이다.
  • 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄여준다.

CORS (Cross-Origin Resource Sharing)

  • 교차 출처 리소스 공유
  • SOP의 예외 조항으로 정해준 출처에 한해 접근이 가능해진다.
  • CORS는 HTTP의 일부로, 어떤 호스트에서 자신의 콘텐츠를 불러갈 수 있는지 서버에 지정할 수 있는 방법이다.

SOP는 자원에 대한 출처 간 접근을 금지한다. 그러나 CORS는 웹 서버에 리소스에 대한 교차 출처 액세스를 허용하도록 선택할 수 있는 기능을 제공한다.

접근 제어 시나리오

1. 단순 요청 (Simple requests)

다음 세 가지 조건을 모두 충족해야 한다.

  • GET, HEAD, POST method
  • Accept, Accept-Language, Content-Language
  • Content-Type(application/x-www-form-urlencoded, multipart/form-data, text/plain)

클라이언트와 서버 간에 간단한 통신을 하고, CORS 헤더를 사용하여 권한을 처리한다.

2. 프리플라이트 요청 (preflighted request)

프리플라이트 요청은 위의 단순 요청과는 달리, 먼저 OPTIONS 메서드를 통해 다른 도메인의 리소스로 HTTP 요청을 보내 실제 요청이 전송하기에 안전한지 확인한다.
Cross-site 요청은 유저 데이터에 영향을 줄 수 있기 때문에 이와같이 미리 전송한다.

3. 인증 정보를 포함한 요청 (Credentialed Request)

인증 정보를 포함한 요청은 HTTP cookies 와 HTTP Authentication 정보를 인식한다.
XMLHttpRequest 객체나 Request 생성자가 호출될 때 특정 플래그를 설정해야 한다.

REF

CORS
SOP

profile
💛

0개의 댓글