userKey 중복 문제

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

43일 전부터 지금까지 총 24명의 유저가 중복 userKey로 가입에 실패했습니다. userKey 생성 로직 확인을 부탁드릴 수 있을까요?

특정 미니앱의 이슈가 아닌 전반적으로 발생하는 문제입니다.

안녕하세요, 관리자분이 확인해주셔야겠지만
내용이 너무 크리해서 댓글 남겨봅니다.

말씀하신대로라면 엄청난 보안사고 수준인데,
저희 앱에서도 최근 로그인 1만건 정도 확인해봤는데 중복된 값으로 내려온건 없거든요.

중복되었다는 24명의 유저키가 정말로 같은앱 내에서 기존의 유저키와 다른 유저가 맞나요?
혹시 앱 여러개 사용하시면서 하나의 DB로 사용하시는건 아닌가요?

유저키는 앱별로만 유니크하게 내려옵니다.
따라서 A앱의 홍길동과 B앱의 홍길동은 유저키가 다를수도 있고 같을수도 있거든요

이게 사실이면 너무 무서운 일이네요

아 흠.. 저도 확인해보니 동시성 이슈일 수도 있겠네요. 멀티테넌트로 설계해서 다른 앱은 맞습니다.

@starlight
아 그렇군요. 그렇다면 토스에서는 유저키가 중복해서 내려온게 없는걸로 결론내리면 될거같고
앱과 무관하게 유저키를 전체 앱에서 유니크하게 처리하셨다면 앱별로 처리하셔야 됩니다.
지금은 운이좋아 가입단계에서 중복인 경우 더이상 진행못하게 된거 같은데,
반환 받은 유저키로 로그인 처리에 사용했다면 잘못하면 다른사람의 정보로 로그인하게 되니까..빠르게 수정하시는게 좋을거 같아요.

@Dylan 님 안녕하세요
user-key는 앱별로 유니크한걸로 알고 있습니다.
그런데 개발 가이드를 보면 마치 토스 전체로 유니크할거라는 생각이 들기도 하네요.
문제 발생시 파트너사의 책임이 되기는 하지만, 잘못하면 큰 보안이슈로 확장될 수 있는 만큼
가이드에 명확하게 명시할 필요가 있어보입니다.

“userkey는 해당 앱에서만 사용 가능한 사용자 식별 고유 값입니다.
동일한 유저라도 앱이 다른 경우 userkey는 달라질 수 있습니다.”

참고 부탁드립니다.

userKey는 미니앱별로만 unique한게 맞습니다.

따라서 A앱의 userKey = 1번 유저와 B앱의 userKey = 1번 유저가 서로 다른 유저인 점 참고 부탁드려요.

동일 유저가 A앱과 B앱에 각각 접속했을 때 userKey 값이 서로 다르게 나온다고 알고 있었는데요.
그래서 두 앱의 유저키를 동일하게 맞추고 싶으면 “기존 로그인과 연동하기” 콘솔 기능을 사용해야 되는것으로 알고있는데..
뭐가 맞는지 헷갈리네요

그리고 아래 가이드에서 “미니앱(서비스)마다 UserKey는 다를 수 있어요” << 이 부분도 너무 애매모호합니다.

안녕하세요 :slight_smile:
가이드 문서를 더 보강해두겠습니다.
감사합니다! :man_bowing: