Same-Origin Policy

jha0402·2021년 4월 8일
0

어떠한 문서나 스크립트가 다른 프로토콜 / 포트 / 호스트 에 있는 리소스 사용하는 것을 제한하는 정책

http://website.com/ex/ex.html

http://website.com/ex/ 성공
http://website.com/ex1/ 성공
http://website.com:81/ex/ex.html 실패, 포트가 다름
http://wwebsite.com/ex/ 실패, 호스트가 다름
https://website.com/ex/ex.html 실패, 프로토콜 다름

SOP 해결방법

동일한 도메인으로 설정함을 통해 SOP 정책을 피할 수 있다. 만약, 현재 도메인이 http://store.company.com/index.html 이라면,
document.domain = "company.com";
과 같이 설정해서 http://company.com/index.html 에 요청을 보낼 수 있다

CORS(Cross-Origin Resource Sharing)

HTTP 헤더를 사용하여 클라이언트와 서버로 하여금 서로에 대해 인지하고 한 출처에서 다른 출처의 자원을 사용할 수 있게 하는 메커니즘이다. 클라이언트가 서버에 HTTP 요청을 보낼 때 HTTP 헤더의 Origin 속성에 자동으로 값이 할당된다.
Origin: http://company.com
이 도메인에서 다른 출처의 자원을 사용하기 위해 ajax 요청을 했다고 하면 SOP 정책 때문에 에러가 발생한다. 따라서 이를 해결하기 위해, 서버의 HTTP 응답 헤더에 다음과 같이 요청을 허용하는 도메인을 명시한다.
Access-Control-Allow-Origin: http://company.com

profile
프론트엔드 개발자

0개의 댓글