Go

보안 및 인증

JWT, OAuth2, 세션 관리, RBAC, crypto/rand vs math/rand, TLS 설정, 안전한 코딩, 보안 모범 사례

24 면접 질문·
Senior
1

JWT 토큰과 전통적인 서버 세션의 주요 차이점은 무엇입니까?

답변

JWT 토큰은 상태 비저장(서버 측 상태 없음) 방식이며 필요한 모든 정보가 토큰 자체에 인코딩되어 포함됩니다. 데이터를 서버 측의 메모리나 데이터베이스에 저장하고 클라이언트 측에는 session ID만 두는 전통적인 세션과 달리, JWT는 저장 책임을 클라이언트로 옮깁니다. 서버 간에 공유 상태가 필요하지 않으므로 수평 확장이 용이해집니다.

2

점으로 구분된 JWT 토큰의 세 부분은 무엇입니까?

답변

JWT는 Base64URL로 인코딩되고 점으로 구분된 세 부분으로 구성됩니다. Header(알고리즘 및 타입), Payload(claims/데이터), Signature(무결성 검증)입니다. 구조는 header.payload.signature입니다. header는 서명 알고리즘(HS256, RS256)을 나타내고, payload는 claims(iss, sub, exp)를 포함하며, signature는 토큰이 변조되지 않았음을 보장합니다.

3

토큰 만료 타임스탬프를 정의하는 표준 JWT claim은 무엇입니까?

답변

'exp'(expiration time) claim은 그 이후로 토큰을 더 이상 받아들이지 말아야 하는 Unix 타임스탬프를 정의합니다. 표준 claims에는 'iss'(issuer), 'sub'(subject), 'aud'(audience), 'iat'(issued at), 'nbf'(not before)도 포함됩니다. exp claim 검증은 토큰의 유효 기간을 제한하고 탈취된 토큰의 영향을 줄이는 데 매우 중요합니다.

4

JWT에 서명할 때 HS256과 RS256의 주요 차이점은 무엇입니까?

5

JWT를 자연 만료 전에 어떻게 취소합니까?

+21 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기