본문 바로가기
Back-End/Server

[CORS] Corse의 credentials: true의 의미

by SeanK 2022. 1. 3.

 

웹 개발에서 다양한 도메인의 리소스를 사용하기 위해 필수적으로 알아야 할 개념 CORS!

 

위 사진은 CORS의 특성과 하는 역할을 아주 잘 묘사하는 짤이라고 생각된다. 

 

CORS를 배우고 Cookie에 대해 학습하다 보면, 

 

처음 보는 Cors option을 발견하게 된다. 

 

Credentials: true

요 녀석은 어떤 옵션이고 왜 필요한 것일까?

 

일단 시간이 없는 사람을 위해 한 마디로 설명하겠다. 

 

클라이언트와 서버 간에 쿠키를 주고받고 싶으면 그냥 저 옵션을 넣으세요. 

 

자 아래는 왜 그런지 이유를 설명해 보겠다. 

 

기본적으로, CORS는 cross-origin 요청에는 쿠키를 담아 데이터를 전송하지 않는다. Json-P의 경우 항상 요청에 쿠키를 담아 보낸다는 점에서 CORS와 차이점이 있는데 이처럼 쿠키를 항상 담아 보내게 되면 CSRF 공격에 취약해질 수 있으니 주의해야 한다. 

 

CORS에서는 CSRF 공격의 위험을 낮추기 위해 서버와 클라이언트 두 쪽 모두에게 쿠키가 요청에 담겨도 되는지 확인하는 작업을 거친다.

 

따라서 클라이언트와 서버 모두에서 credentials: true 값이 설정되어 있지 않다면 기본 설정에 의해서 요청의 헤더에서 쿠키를 찾을 수 없게 되는 것이다. 

 

 

'Back-End > Server' 카테고리의 다른 글

[Web server] Apache vs NginX  (0) 2023.09.19
Server App server VS Web server  (0) 2021.11.24