2012-06-19 3 views
0

현재 Javascript Facebook 로그인 API를 구현 중입니다.사이트의 스크립트에서 요청이 왔는지 확인하는 방법은 무엇입니까?

Facebook의 콜백 응답을 기반으로이 클라이언트 측 스크립트는 쿼리 문자열 매개 변수가 포함 된 요청을 Google 사이트의 URL로 전송합니다. 해당 URL의 전자 메일을 기반으로 클라이언트가 인증됩니다.

이것은 안전하지 않습니다. 우리가 확인할 수있는 다른 토큰은 Facebook에서 (내가 아는 한) 반환되지 않으며 쿼리 문자열 매개 변수의 전자 메일 및 암호가없는 전자 메일을 기반으로 사용자를 기록 할 것으로 예상됩니다.

다른 쿼리 문자열 매개 변수를 추가하고 싶습니다. 쿼리 문자열 데이터가 Facebook의 응답에 따라 JavaScript 리디렉션에서 가져온 것이라고 보장 할 수 있습니다.

나는 이것이 서버 측과 비교할 수있는 클라이언트 스크립트에 의해 만들어진 일종의 해시 값이어야한다고 생각합니다. 그러나이 비밀 키를 만드는 데 사용되는 모든 리소스는 공격자가 클라이언트 쿠키를 사용하거나 클라이언트 스크립트를 검사하여 사용할 수 있습니다.

사용할 수있는이 문제에 대한 일반적인 접근 방법이 있습니까?

답변

0

사용자를 인증 할 때마다 Facebook이 고유 콜백 URL을 전달합니다.

이 URL에는 로그온 시도의 진위 여부를 나타내는 보안 토큰이 포함되어 있어야합니다.

1

페이스 북은 분명히 OAuth을 사용합니다. OAuth는 관련 OAuth 및 FB 문서에서 찾을 수없는 세부 정보가 없이는 서버과 프론트 엔드 Javascript에 공개되지 않는 서비스 공급자 (이 경우 Facebook)간에 공유되는 비밀로 작동합니다. , 귀하가받는 콜백이 정품인지 확인하는 데 사용됩니다.

관련 문제