본문 바로가기
Etc

Ajax 요청시 사용하는 withCredentials 옵션의 의미

by 당리 2024. 8. 25.

얼마전에 N---시스템의 브라우저가 패치가 되면서 갑작스럽게. 내가 운영하고있는 서비스와의 API 통신하는데 문제가 발생했다.

N---시스템에서 쿠키를 안주는것이다.. 아마 브라우저 패치를 하면서, 브라우저의  보안정책이 변경된것같았다.

N---담당자하고 , 브라우저 연구소와 연락을 하면서, 다시 재패치를 진행해주었다.

 

근데 강제로 withCredentials : true로 먹여주니까 되긴하더라..

 

-----------

 

브라우저는 유저의 보안을 위해 기본적으로 Same-Origin Policy를 적용합니다. 이는 리소스의 프로토콜, 호스트, 포트번호가 같은 경우에만 통신을 허락하는 정책입니다.

 

브라우저는 클라이언트가 요청을 할 수 있도록 Request 인터페이스를 제공하고, 여기에는 credentials라는 read-only 속성이 있습니다. 이 속성은 해당 요청에서 credentials를 주고 받아도 되는지에 관해 지정합니다. 여기서 credentials는 쿠키, Authorization 헤더, TLS client certificates를 의미합니다. credentials 속성은 “omit”, “same-site”, “include” 세 가지 값을 허용하고 각 의미는 다음과 같습니다.

 

omit은 credentials를 요청에 포함하지 않습니다.

same-site는 속성의 기본값이며, 같은 사이트에 대해서만 credentials를 포함합니다.

include는 다른 사이트라도 credentials를 포함합니다.

 

 

 

withCredentials 옵션은 단어의 의미에서 알 수 있듯이, 서로 다른 도메인(크로스 도메인)에 요청을 보낼 때 요청에 

credential 정보를 담아서 보낼 지를 결정하는 항목입니다.

 

 

 

 

axios.get('https://example.com/hello', {
  withCredentials: true
})

'Etc' 카테고리의 다른 글

Eclipse 'Loading descriptor for ~' 에러  (1) 2024.08.30
Refactoring 간단 예제  (0) 2024.08.25
용어정리  (0) 2024.08.18
Refactoring이란  (0) 2024.08.11
Jira(지라) 활용기  (0) 2024.08.11