카테고리 없음

CORS에 대해 알아보자

코딩하는 배달이 2023. 4. 3. 20:09

SOP, Same Origin Policy

브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절한다.

 

이러한 허락을 구하고 거절하는 메커니즘을 HTTP-header를 이용해서 가능한데, 이를 CORS(Cross-Origin Resource Sharing)라고 부른다.

 

브라우저는 SOP(Same Origin Policy)를 적용하여 다른 출처(Origin)의 리소스에 대한 접근을 제한한다. 이는 보안 상의 이유로 중요하다. 하지만 때로는 다른 출처의 리소스에 접근해야 하는 경우가 있다. 이 때 CORS를 사용하여 다른 출처에서 리소스에 대한 접근을 허용하도록 할 수 있다.

CORS는 서버가 리소스에 대한 접근을 허용하는지 여부를 나타내는 HTTP 헤더를 클라이언트에게 반환함으로써 작동한다. 이 헤더는 다른 출처에서 리소스에 대한 요청을 수락하는 것을 허용하거나 거부하는 데 사용된다.

CORS는 브라우저에서만 적용되며, 서버 간 통신에는 영향을 미치지 않는다. 따라서 서버 측에서는 다른 출처에서의 요청을 수락하는지 여부를 결정할 때 CORS를 고려해야 한다.

 

 

서버간 통신에는 CORS가 없다?

CORS는 브라우저에서만 적용되는 보안 메커니즘이며, 서버 간 통신에는 직접적인 영향을 미치지 않는다. 서버 간 통신을 할 때는 보안상의 이유로 HTTPS를 사용하거나 토큰 기반의 인증을 구현하는 등의 다른 보안 메커니즘을 사용해야 한다.

서버 통신을 , CORS 유사한 메커니즘으로는 CSRF(Cross-Site Request Forgery) 방어 메커니즘이 있다. CSRF 악의적인 사용자가 인증된 사용자의 권한으로 서버에 요청을 보내는 공격을 방어하는 메커니즘으로, 서버에서는 CSRF 토큰을 생성하여 요청과 함께 전송하고, 토큰이 일치하는 경우에만 요청을 처리하도록 한. 이렇게 함으로써 악의적인 요청을 걸러내고, 서버 통신의 보안성을 높일 있다.