[필독] 소셜로그인 아이디 중복, 엄청난 이슈 정보
[필독] 소셜로그인 아이디 중복, 엄청난 이슈본문
아래와 함수를 이용하여 소셜로그인 아이디를 생성하는데요.
엄청난 문제를 발견하였습니다.
절대적으로 유니크한 값을 출력하지 않습니다.
예를들면 아래와같이 출력하면
echo get_social_convert_id("516548797","kakao") . "<br/>";
echo get_social_convert_id("165487879","kakao");
kakao_123e4567
kakao_123e4567
위와 같이 중복된 값을 반환 된다는 문제를 발견했습니다.
$identifier 값이 다른데 말이죠
소규모 사이트면 모르겠는데 회원수가 많은곳은 문제가 발생할것입니다.
A라는 회원이 카카오 로그인/회원가입 함 ( kakao_123e4567 )
B라는 회원이 카카오 로그인/회원가입 함 ( kakao_123e4567 )
그럼 여기서 무슨 문제가 발생되냐?
1. B라는 회원이 소셜로그인을하면 A로 로그인이 됨
2. B라는 회원이 탈퇴하면 A회원 탈퇴처리가 됨 ( A회원으로 로그인이 됫기때문 )
3. A회원이 난리남 탈퇴한적이 없는데 탈퇴 됬다고.
이런 문제 없으셨나요? 탈퇴한적 없는데 탈퇴 되었다고
그건 이문제일 가능성이 큽니다.
이런문제가 일어나는 이유는 adler32, md5 가 완벽하게 유니크한 값을 출력을 못하고 충돌이 일어나기때문입니다.
function get_social_convert_id($identifier, $service)
{
return strtolower($service).'_'.hash('adler32', md5($identifier));
}
3
댓글 9개
이런.... 어째서 여태 문제가 없었을까요
빨리 조치가 되어야겠네요

제일 확실한 방법은 아이디가 이메일 형태로 슬슬 변경되어야 생각합니다 어차피 간편로그인시 네이버,카카오,구글,페이스북 정도만해도 다들 이메일 값이 넘어 옵니다 안그래도 영카트 소셜 가입자들은 아이디 물어보는것도 애매하고, 정식버전은 이름도 제대로 넘어오는게 아닌, 닉네임이 넘어와서 상대방에게 닉네임 물어보면 대부분 무슨 닉네임을 말하는지 모릅니다 영카트 주문할때도 받는사람 주문하는 사람 이름 전부 닉네임 형태로 값이 넘어가서 진짜 많이 불편합니다

저런문제가 그누보드의 순정에서는 안보이네요.
함수를 보더라도 중복이 될수가 없습니다
혹시 다른 페이지들에서 변수가 충돌되거나
덮어써지지 않는지 확인하셔야 할것 같습니다.
@그누위즈
실제 문제가 되는 값 전달 드립니다.
3823539846
3853182953
위 값으로 테스트해보면 같은 id값으로 반환되는것을 확인 할 수 있습니다.
디비에서 id 쪾에 primary key 선언 되어있지 않나요? 그럼 중복이 되어도 가입 오류가 될거 같은데..
@밤비1221
소셜로그인에서 아이디가 있으면 로그인처리 없으면 회원가입 처리가 되기때문에 아이디가 이미 있으면 로그인처리가 되어 다른사람이 회원가입한 아이디로 로그인되게 됩니다.

저도 같은 증상이었는데
순정이 탈퇴하면 아이디는 남기고 이름/전화번호/이메일 등 다 날라가게 되어있는데 아이디까지 다 날리게 변경해서 그런거 같아요. (완전 삭제)
예전 팁에서 휴먼 계정 완전 삭제하게 하는게 있었는데 그걸 적용해놨거든요.

음.... 다음 그누보드 버전에서 해결되길 바랍니다.