authentication
-
카카오 로그인은 비밀번호 대신 무엇을 전달할까
“카카오로 로그인” 버튼을 처음 붙일 때는 우리 서버가 카카오 아이디와 비밀번호를 받아 확인하는 줄 알았다. 하지만 문서에는 비밀번호를 받는 API 대신 브라우저를 카카오 로그인 화면으로 보내라고 적혀 있었다. 우리 서비스가 비밀번호를 보지 않는다면 무엇으로 사용자를 확인할까? 버튼을 누른 뒤 브라우저가…

-
JWT는 내용이 보이는데 어떻게 위조를 막을까
로그인하면 서버가 eyJhbGci…로 시작하는 긴 문자열을 준다. 알파벳과 숫자가 뒤섞여 있고 중간에 점이 두 개 찍혀 있다. 서명까지 붙어 있으니 내용도 암호화되어 있을 것 같다. 하지만 가운데 조각을 디코딩하면 토큰에 담긴 사용자 정보가 그대로 보인다. 그렇다면 서명은 무엇을 보호할까? JWT의…

-
쿠키가 자동으로 붙는데 CSRF 토큰은 왜 필요할까
로그인은 쿠키로 처리하는데, 인터셉터는 POST 요청마다 X-CSRF-Token 헤더를 하나 더 붙인다. 쿠키가 자동으로 전송되는데 별도의 토큰은 왜 필요할까? CSRF는 공격자가 쿠키를 훔쳐야만 가능한 공격이 아니다. 쿠키 값을 몰라도 사용자의 브라우저가 그 쿠키를 붙여 요청하도록 유도할 수 있다. 쿠키와 CSRF 토큰을…

