• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    해결됨

쿠키, 세션, 토큰 방식에 대한 질문

24.02.24 23:26 작성 조회수 130

1

노씨님 cs 강의 보고 공부하던중 질문이 있어서 드립니다!

1. 쿠키를 단일로 사용하는 경우에는 인증, 인가에 사용하는게 아니라, 브라우저 사용동안의 유지정보(언어, 다크모드? 등)와 같은데에 사용하는 건가요?

2. 만약 인증 인가 작업을 하기 위해서는 토큰+세션을 이용해서 사용하는 거죠?

3. 토큰도 쿠키에 담아서 많이 사용하는데, 쿠키의 경우 토큰 탈취를 방지하기 위해 HTTP ONLY를 사용해서 자바스크립트로 접근을 막으면 쿠키의 토큰 탈취를 막을 수 있죠?

4. CSRF는 토큰 값을 직접적으로 가져올 수 없는 것으로 아는데, 그렇다면 쿠키를 이용했을때, CSRF으로 인한 악성 요청을 가더라도 토큰은 보호할 수 있는 걸까요?

답변 1

답변을 작성해보세요.

0

안녕하세요 파이리이2님

답변 드리도록 하겠습니당.

  1. 맞습니다. 쿠키는 사용자의 브라우저 세션을 유지하는데 주로 사용됩니다. 이는 사용자의 환경 설정(언어 선택, 화면 모드 선호도 등)을 기억하고, 사이트 방문 시 사용자에게 개인화된 경험을 제공하기 위해 활용됩니다. 쿠키는 보통 사이트 내의 사용자 편의 기능을 개선하는 데에 주로 사용되며, 보안적으로 민감한 인증 및 인가 과정에 단독으로 사용되기에는 부적합할 수 있습니다.

  2. 네, 인증과 인가 작업에는 토큰과 세션을 함께 사용하는 것이 일반적입니다. 세션은 서버 측에서 사용자의 로그인 상태를 유지하는데 사용되며, 토큰(예: JWT - JSON Web Token)은 사용자의 인증 정보를 암호화하여 클라이언트(브라우저)와 서버 간에 안전하게 전달하는데 사용됩니다.

  3. 맞습니다. 쿠키에 담긴 토큰은 HTTP Only 속성을 사용하여 자바스크립트로부터의 접근을 제한하여 쿠키의 토큰 탈취를 막을 수 있습니당

  4. CSRF 공격은 쿠키를 자동으로 포함하여 요청을 보내기 때문에, 단순히 쿠키에 토큰을 저장한다고 해서 CSRF 공격으로부터 완벽하게 보호되진 않아요. CSRF 토큰 같은걸 사용해서 서버 측에서 검증하는 방법도 있을 수 있어요.

질문에 대한 답이 되었을까요~? 추가적으로 궁금한 점이 있으면 편하게 질문 주세요!

감사합니당

상세히 알려주셔서 감사합니다!