얼마전에 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 |