개발자

쿠키가 저장은 되는데 값을 못가져와요

2024년 03월 19일조회 205

서버에서 로그인을 하고 받은 호출하고 받은 데이터에서 자동으로 쿠키가 저장은 되는데 개발자 도구 -> 애플리케이션 -> 쿠키에는 저장이 되는것을 확인했는데 document.cookie로 쿠키를 받아올라하는데 쿠키가 빈값으로 나오는데 어떻게 해야하나요??

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

박정환님의 프로필 사진

해당 쿠키가 secure 쿠키인지 확인해보세요. 로그인 로직이 사용된 쿠키면 거의 secure cookie가 맞을겁니다. 환경이 로컬이 아니라면 secure cookie는 https에서만 세팅이 가능합니다. 이점도 유의하세요. 그리고 개발언어가 무엇인가요? java(jsp)인지 react인지 아니면 다른건지도 말씀을 해주셔야 할거 같습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 03월 19일

JavaScript에서 `document.cookie`를 사용할 때 브라우저는 쿠키가 'Secure' 또는 'HttpOnly' 플래그를 가지고 있는 경우 해당 쿠키에 접근을 제한합니다. 이 두 가지 플래그는 보안 목적으로 사용되며, XSS 공격 및 중간자 공격을 방지하는데 도움이 됩니다. 'Secure' 플래그가 설정된 쿠키는 HTTPS 연결에서만 전송됩니다. 'HttpOnly' 플래그가 설정되면 JavaScript에 의해 접근할 수 없습니다. 서버에서만 해당 쿠키를 읽을 수 있어 클라이언트 사이드 스크립트에 의한 공격을 막습니다. 따라서 문제는 아마도 서버에서 설정된 쿠키가 이러한 플래그를 가지고 있어서 `document.cookie`로 접근할 수 없는 것일 가능성이 큽니다. 해결책은 단순하게는 해당 플래그들을 제거하면 되지만, 이런 경우 보안상의 위험이 발생할 수 있어 추천하지 않습니다. 대신, 서버에서 API 응답으로 필요한 데이터를 직접 반환하도록 작업하는 것이 좋습니다. 그렇게 해서 JavaScript에서는 쿠키에 직접 접근하여 데이터를 가져오지 않고, 서버에서 반환된 응답을 사용하도록 변경하는 것이 좋을 것 같습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!