Kim ByeungHyun
<WIL> 10.17 ~ 10.23 / 주특기 심화, CORS 본문
주특기 심화
심화주차 과제
JWT, CRUD 위주로 공부
협업을 위주로 한 팀과제, 깃을 이용해서 pull commit push branch merge comfiit 등 여러가지를 해볼수 있던 주차였다
sparta-organization-9C8/spting-boot-deep-9c8 (github.com)
GitHub - sparta-organization-9C8/spting-boot-deep-9c8
Contribute to sparta-organization-9C8/spting-boot-deep-9c8 development by creating an account on GitHub.
github.com
CORS
내 인증정보/개인정보를 탈취해다가 사용할수도있다. 그것을 방지 하기 위해 SOP가 막아주고 CORS는 풀어준다.
Cross-Origin Resourse Sharing 교차 출처 자원 공유 방식
- 다른 출처간에 리소스를 공유할 수 있도록 하는 걸 말한다.
출처는 보내고 받는 각각의 위치 즉, 웹사이트랑 API의 주소.
리소스는 주고 받아지는 데이터.
==> 서로 다른 API끼리 정보 요청과 반환이 가능하도록 하는게 CORS
조건
1. 요청을 받는 백엔드 쪽에서 허락할 다른 출처들을 미리 명시 - 허용 할 사이트를 미리 적어준다
그럼 얼마든지 HTTP요청을 보낼수 있다. 일반적인 것은 별표(*), 와일드 카드를 적어 놓음.
깊게파보자
다른 출처들 끼리 보내질때는 요청에 Orgin이라는 header를 추가한다.
Orgin 항목에는 요청하는 쪽의 schema, 도매인, 포트가 담긴다.
*schema : 요청할 자원에 접근 할 방법 (http, ftp, telnet등), 프로토콜 이라고도 함.
http://rlaqudgus.tistory.com:443 --> 여기에서
http -> schema
0000.com -> 도메인
:443 -> 포트
Kim ByeungHyun
rlaqudgus.tistory.com
이 요청을 받은 API서버는 당장의 헤더에 지정된 Access-Control-Allow-Origin 정보를 실어서 보낸다.
토큰 등 사용자 식별 정보가 담긴 요청에 대해서는 보다 엄격하기에 보내는 측에서는 요청의 옵션에 credentials 항목을 true로 세팅해야 하고 받는쪽에서도 아무 출처나 다 된다는 와일드 카드가 아니라 보내는 쪽의 출처 -웹페이지 주소를 정확하게 명시한 다음 Access-Control-Allow_Credentials 항목을 true로 맞춰줘야 한다. ==> 양쪽다 빡세게 조건을 갖춰야함.
-> GET 이나 POST는 간단한 요청, PUT이나 DELETE는 Preflight 요청이라는 걸 먼저 보내서 본요청이 안전한지 확인하고허락이 떨어져야 본격적으로 요청을 보낼수 있다
추가학습자료
[Spring] CORS - 프런트엔드와 백엔드 연결
CORS Cross-Origin Resource Sharing의 약자 리소스를 제공한 도메인이 현재 요청하려는 도메인과 다르더라도 요청을 허락해 주는 웹 보안 방침 위키피디아: 웹 페이지 상의 제한된 리소스를 최초 자원이
sdardew-valley.tistory.com
'공부 > 항해99' 카테고리의 다른 글
WIL 기술 면접 질문II (1) | 2023.04.09 |
---|---|
WIL 기술 면접 질문I (0) | 2023.04.01 |
<WIL> 10.3 ~ 10.9 / 주특기 입문, DI, IoC, Bean (1) | 2022.10.09 |
<WIL> 9.26 ~ 10.2 / Java알고리즘, 객체지향, JVM (0) | 2022.10.03 |
<WIL> 9.19 ~ 9.25 / 웹 개발 미니 프로젝트, API, JWT (0) | 2022.09.25 |