2011-08-04 2 views
1

페이스 북 로그인을 사용하는 iphone 응용 프로그램을 작성하고 있습니다. 사용자가 fb 액세스 토큰에 로그인하면 전자 메일 주소가 웹 서비스를 통해 백 엔드 DB로 전송됩니다. 이제 문제는 페이스 북으로 액세스 토큰을 변경할 때이를 어떻게 인식 할 것인가입니다. 누군가가 웹 서비스를 통해 내 DB에 유사한 데이터를 보내 사용자로 가장하여 내 DB에서 액세스 토큰을 변경할 수 있습니다. 모바일 장치에서 오는 웹 서비스 호출을 어떻게 든 인증해야합니다.페이스 북 로그인으로 백엔드 시스템에 대한 원치 않는 액세스를 방지합니다.

사용자에게 비밀번호를 제공하지 않고 어떻게 이러한 문제를 방지 할 수 있습니까?

감사합니다.

답변

0

쉬운 또는 정말 완벽한 솔루션이 없습니다.

하지만 먼저 백엔드와의 통신은 중간 공격자의 위험을 최소화하기 위해 최소한 SSL 암호화를 사용해야합니다.

첫 번째 실행에서 고유 한 식별자를 생성하고 서버에서 동일한 알고리즘을 사용하여 유효성을 검사하여 백엔드에 대한 액세스 토큰을 만들 수 있습니다. 그러나 알고리즘이 약하거나 사용자가 식별자를 생성하는 방법을 찾을 수있는 응용 프로그램을 디 컴파일합니다.

md5가 지금은 약해지기 시작합니다.

매우 간단한 토큰 생성을위한 Exampel은 코드에서 사용하지 마십시오.

String salt = "twsg23s¤#"; //a random generated string (must be the same on the server and client 
String token = sha1(sha1(facebookid + salt) + salt); //this will be your token 

그런 다음 동일한 토큰 서버 측을 생성하고 클라이언트 토큰을 servertoken과 비교하십시오.

내가 강조해야 할 점은 : 소금이 노출되어 있거나 알고리즘이 약해 시스템에 큰 보안 허점이 있습니다.