상세 컨텐츠

본문 제목

[FE 45] _23.06.01 _ Day 36 ([Web Server] 기초)

프론트앤드 부트캠프/Day

by 코린’s 2023. 6. 1. 10:54

본문

728x90
반응형

Unit10 - [Web Server] 기초

 

 


SOP(Same-Origin Policy)는 웹 보안의 중요한 개념으로, 웹 브라우저에서 실행되는 스크립트에 의해 다른 출처의 리소스에 접근하는 것을 제한하는 정책입니다. SOP는 웹 애플리케이션이 악의적인 공격으로부터 보호되고 사용자의 개인 정보가 안전하게 유지될 수 있도록 합니다.

SOP의 핵심 내용

  1. 동일 출처(same origin): 동일 출처란 프로토콜, 호스트, 포트가 모두 동일한 경우를 의미합니다. 예를 들어, http://example.com과 http://example.com/api는 동일 출처입니다.
  2. SOP의 제약 사항:
    • 스크립트로 로드한 문서는 동일 출처의 리소스에만 접근할 수 있습니다.
    • 스크립트로 로드한 문서는 다른 출처의 리소스에 직접적인 요청을 보낼 수 없습니다.
    • 스크립트로 로드한 문서는 다른 출처의 리소스를 불러올 수 없습니다.
  3. 예외 사항:
    • <script> 태그를 통해 외부 스크립트 파일을 로드할 때는 SOP의 제약을 우회할 수 있습니다.
    • CORS(Cross-Origin Resource Sharing) 정책을 통해 서버가 다른 출처의 리소스 요청을 허용할 수 있습니다.
    • <img>, <link>, <script>, <iframe> 등의 태그를 통해 다른 출처의 리소스를 포함시킬 수 있습니다.

SOP는 웹 보안을 강화하기 위해 중요한 역할을 합니다.

악의적인 웹사이트로부터 사용자의 개인 정보를 보호하고, 다른 출처의 리소스에 대한 권한 부여를 제어함으로써 웹 애플리케이션의 안전성을 높일 수 있습니다.


CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션에서 다른 도메인 또는 포트에서 리소스를 요청할 때 발생하는 보안 정책입니다. 웹 브라우저는 보안상의 이유로 기본적으로 다른 출처에서 리소스를 요청하는 것을 제한합니다.

이 때, CORS 정책을 허용하여 다른 출처의 리소스에 접근할 수 있도록 서버와 클라이언트 간의 상호 작용을 가능하게 합니다.

CORS 정책은 다음과 같은 규칙을 따릅니다:

1. 브라우저는 웹 애플리케이션의 클라이언트 사이드에서 발생한 요청을 보낼 때, 요청의 출처(Origin)를 검사합니다.
2. 출처는 프로토콜(예: http, https), 호스트 이름, 포트 번호로 구성됩니다.
3. 동일 출처(same origin) 요청인 경우, CORS 정책에 의해 제한 없이 요청을 보낼 수 있습니다.
4. 다른 출처 요청인 경우, 서버는 응답에 CORS 헤더를 추가하여 브라우저에게 요청을 허용할지 여부를 알려줍니다.
5. 브라우저는 서버로부터의 응답에 따라 CORS 헤더를 검사하고, 허용된 경우에만 클라이언트 사이드로 응답을 전달합니다. 그렇지 않으면 CORS 오류가 발생합니다.

CORS를 해결하기 위해 서버 측에서는 다음과 같은 옵션을 사용할 수 있습니다:

1. 서버에서 CORS 헤더를 추가하여 요청을 허용합니다. `Access-Control-Allow-Origin` 헤더를 사용하여 허용할 출처를 명시하거나, `Access-Control-Allow-Origin: *`로 설정하여 모든 출처를 허용할 수 있습니다.
2. 필요에 따라 추가적인 CORS 헤더(예: `Access-Control-Allow-Methods`, `Access-Control-Allow-Headers`)를 설정하여 요청의 메소드와 허용되는 헤더를 명시할 수 있습니다.
3. 인증 정보를 포함하는 요청(예: 쿠키, HTTP 인증)을 허용하기 위해 `Access-Control-Allow-Credentials: true` 헤더를 설정할 수 있습니다.
4. 프리플라이트(OPTIONS) 요청에 대한 처리를 구현하여 브라우저가 실제 요청을 보내기 전에 서버의 CORS 정책을 확인하도록 합니다.

이렇게 서버에서 CORS 헤더를 설정하고 클라이언트에서는 해당 헤더를 검사하여 요청을 처리하면, 웹 애플리케이션에서 다른 출처의 리소스에 안전하게 접근할 수 있습니다.

 


CORS(Cross-Origin Resource Sharing)와 SOP(Same-Origin Policy)은 웹 보안에서 관련된 개념이지만 서로 다른 개념입니다.

이들은 웹 브라우저에서 다른 출처의 리소스에 접근하는 규칙과 제한을 정의합니다.

 

CORS와 SOP의 관계

1. SOP (Same-Origin Policy):
 - SOP은 웹 보안의 기본 원칙으로, 웹 브라우저에서 실행되는 스크립트에 의해 다른 출처의 리소스에 접근하는 것을 제한하는 정책입니다.
 - SOP에 따르면, 웹 페이지의 스크립트는 동일 출처(same origin)의 리소스에만 접근할 수 있으며, 다른 출처의 리소스에 직접적인 접근은 차단됩니다.

2. CORS (Cross-Origin Resource Sharing):
 - CORS는 SOP의 제한을 우회하여 다른 출처의 리소스에 안전하게 접근할 수 있도록 하는 메커니즘입니다.
 - CORS는 서버와 클라이언트 간의 상호 작용을 통해 동일 출처 이외의 리소스에 대한 접근을 허용하는 방법을 제공합니다.
 - 서버는 CORS 헤더를 통해 브라우저에게 허용된 출처를 명시하고, 브라우저는 이를 검사하여 안전한 상호 작용을 결정합니다.

요약하면, SOP는 웹 브라우저에서 다른 출처의 리소스에 직접 접근하는 것을 제한하는 정책이며, CORS는 SOP의 제한을 허용하기 위해 서버와 클라이언트 사이에서 상호 작용하는 메커니즘입니다. CORS는 웹 애플리케이션에서 다른 출처의 리소스에 안전하게 접근할 수 있도록 해주는 중요한 보안 메커니즘입니다.

728x90
반응형

관련글 더보기