8/23 TIL 짧공 / CORS에 대하여

이승준·2023년 8월 24일
0

짧공 프로젝트

  • 소켓과 API백엔드 서버를 구분하는 것이 어렵다.
  • 그래서 일단 실시간으로 해야할 것에 대해 먼저 구현하고, api와 db쪽 연결을 하기로 하고 프로젝트를 진행해야겠다.

CORS에 대하여

CORS(Cross-Origin Resource Sharing)는 웹 브라우저에서 발생하는 보안 상의 이슈를 다루기 위한 메커니즘입니다. 웹 애플리케이션은 보안상의 이유로 동일한 출처(Same-Origin)에서만 리소스에 접근할 수 있도록 제한이 되는데, CORS는 서로 다른 출처 간의 리소스 공유를 허용하기 위한 정책을 정의하고 구현하는 것입니다.

각 출처는 프로토콜(프로토콜명), 호스트(도메인 또는 IP 주소), 포트로 정의됩니다. 예를 들어, http://example.com:80과 http://anotherdomain.com:8080은 서로 다른 출처입니다.

CORS 정책을 통해 웹 애플리케이션이 다른 출처의 리소스에 접근하는 것을 제어할 수 있습니다. 브라우저에서는 이러한 보안 정책을 따르며, 다음과 같은 상황에서 CORS 정책이 적용됩니다:

Cross-Origin HTTP 요청: 웹 애플리케이션이 다른 출처의 리소스에 HTTP 요청을 보내는 경우, 브라우저는 해당 요청이 안전한지 확인하고 CORS 정책을 적용합니다. 일반적으로, 다른 출처의 리소스를 요청하는 경우에는 브라우저에서 CORS 헤더를 검사하게 됩니다.

CORS 헤더: 서버는 응답에 CORS 관련 헤더를 포함시켜야 합니다. 주요 CORS 헤더로는 Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, Access-Control-Allow-Credentials 등이 있습니다.

Preflight 요청: 브라우저는 복잡한 요청(특정 HTTP 메서드나 특정 컨텐츠 타입 등을 사용하는 요청)을 전송하기 전에 "Preflight" 요청을 보냅니다. 서버는 Preflight 요청을 받아서 해당 요청을 수용할 수 있는지 확인한 후, 본래 요청을 허용하거나 거부합니다.

CORS를 구현할 때 주의할 점은 보안을 위해 필요한 것이지만, 서버 측과 클라이언트 측 양쪽에서의 설정이 필요하다는 점입니다. 서버는 CORS 정책을 적절히 설정하고 응답 헤더를 추가해야 하며, 클라이언트 측에서는 요청을 보내는 방식에 따라 Preflight 요청 등을 고려하여 코드를 작성해야 합니다.

0개의 댓글

관련 채용 정보