[TIL 0404] Cors

zitto·2023년 4월 4일
0

TIL

목록 보기
30/77
post-thumbnail
  • open-api


  • 기존 : SOP


    -> 동일 출처(Same Origin)에서만 접근이 가능한 정책
    두 URL의 Port(명시한 경우), Protocol, Host가 모두 같아야 Same Origin!
  • 웹서비스가 활성화 된 이후, Cors

    CORS란 웹페이지상에서 자바스크립트를 이용하여 XHR(XMLHttpRequest)을 다른 도메인으로 발생 시킬 수 있도록 해주는 기능.
    브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원한다.(resource데이터 공유가능)

  • Cors 허용

    -> cors요청 했을 때 cors yes(허용)인 신뢰할 수 있는 사이트들은 공유가 가능하다(openAPI요청가능)
    단, 콜스요청 시 규칙이 있음.
    만약 다음에서 네이버로 요청한다고 하면 요청이 바로 들어가는 것이 아닌,
    요청을 하기 전에 사전요청을 보내는데 이것을 preflight라고 한다.
    백엔드에서 응답을 주면 (cors:true 하면 모든 출처에 대해 다 허용하는 것!)
    그 중에 get,post방식만 가능하다고 알려줌.
    다음과 쿠팡만 하고 싶다면
    cors:["다음","쿠팡"]

  • Cors 금지

    -> cors가 no인 애들은 요청하면 에러가 뜬다!
    따라서 우회해서 가져와야 함. 이때 우회를 하도록 지나오는 백엔드컴퓨터가 프록시(대리인) 역할!

    어차피 우회할 거 이런 보안정책이 있는 이유?
    백엔드를 보호하는게 아닌 브라우저를 보호하기 위한 것임!
    이 부분을 위해서는 브라우저의 쿠키에 대해 이해할 필요가 있다.

    쿠키에 로그인 증표 저장됨
    쿠키에 누구한테 받아왔는지도 저장되있음.

    이 방식의 문제점!
    그 증표가 쿠키에 기록과 함께 저장되있음.
    브라우저에서 못나가게 막아야 함!

결론❗️ cors는 브라우저의 안전을 위해 존재!

profile
JUST DO WHATEVER

0개의 댓글