less than 1 minute read

SOP와 CORS

SOP는 Same Origin Policy의 줄임말로, 동일 출처 정책을 의미한다. uri의 프로토콜, 호스트, 포트 이 3가지가 모두 동일해야 같은 출처(Same Origin)으로 인정하게 되는데, 이 정책이 필요한 이유는 동일한 출처가 아닌 곳에서 요청이 오는 경우 해당 요청을 막아 높은 보안성을 유지하기 위함이다. 대부분의 모던 브라우저에서는 이 정책을 기반으로 동일 출처로의 요청이 아니면 요청 자체를 막는다. 다만, 서버에서 다른 출처에서의 요청을 허용하게 해줄 수 있는 CORS(Cross-Origin Resource Sharing) 설정을 해준 경우는 접근할 수 있다. 모든 출처로 부터의 요청을 허용할 수도 있고, 일부 출처로의 요청만 허용하는 것도 가능하다.


내가 CORS 이슈를 해결한 방법

프론트엔드 측에서 proxy를 설정하여 설정해준 루트로 api호출이 되기 때문에 해결했던 적이
개발환경에서는 문제가 없지만 배포 환경에서는 서버에서 CorsFilter를 사용하여 해결하였다. (proxy : 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.)


CORS나 SOP가 없다면?!

CSRF 즉, 크로스 요청 위조가 일어날 수 있다. Cross-site request forgery
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. XSS 즉, 크로스 스크립팅으로 웹사이트 관리자가 아닌 이가 웹 페이지 에 악성 스크립트 를 삽입할 수 있는 취약점이다.



Updated: