2010-02-11 2 views
13

나는 트위터 및/또는 Facebook에 상태 업데이트를 게시하는 little web utility를 작성 중입니다. API 키와 '비밀'을 얻기 위해 두 가지 서비스로 '애플리케이션'을 만드는 것이 필요했습니다.Facebook API 비법을 공개 할 때 발생할 수있는 문제점은 무엇입니까?

제 질문은 이러한 비밀을 지켜야한다는 것을 어떻게 보호해야하는지입니다.이 기능이 작동하려면 비밀 인증이 서비스의 인증 부분과 상호 작용하여 계정에 대한 앱 액세스 권한을 부여해야합니다. 및/또는 귀하를 대신하여 업데이트를 게시 할 수있는 권한을 부여하십시오. 페이스 북의 문서에 따르면 비밀을 지키기 위해 적어도 one other Facebook utility은 소스에 API 키와 암호를 배포합니다.

주목해야 할 점은 Facebook의 컨텍스트 내에서 실행되는 표준 Facebook 응용 프로그램이나 표준 "데스크톱"스타일의 컴파일 된 응용 프로그램이 아니라는 것입니다.이 응용 프로그램은 의도 된 웹 기반 응용 프로그램입니다. 자신의 웹 서버에서 실행하십시오. 잠재 고객은 평균보다 작고 다소 정교합니다. 따라서 한 가지 기술적 대안은 사람들이 자신의 API 키와 앱을 사용하기위한 비밀을 구하도록 요구하는 것입니다. 그러나 이것은 많은 일을하는 것처럼 보입니다. 그리고 이것을 사용하는 누군가에게 진입하는 데 상당히 큰 장벽이 될 것입니다.

아무도 내 앱의 설정에 비밀과 API 키를 넣고보고 싶은 모든 것을 Github에 체크인하면 어떤 종류의 문제에 대해 알고 있는지 알지 못합니다.

+0

+1 아주 좋은 질문 – Sarfraz

답변

8

비밀 키에 대한 액세스 권한이있는 사용자는 응용 프로그램을 완벽하게 제어 할 수 있습니다. 이 페이지에는 admin.setAppProperties API call으로 변경할 수있는 모든 관리자 설정이 표시됩니다. 여기에는 응용 프로그램을 개발자 모드 (다른 사람이 사용할 수 없도록 함)로 변경하거나, 콜백 URL (중단 될 수 있음) 또는 모든 종류의 다른 장난을 변경하는 것이 포함될 수 있습니다.

당신이 무엇을 하려는지 완전히 모르겠다.하지만 session secrets에 대한 문서를 보면 앱의 비밀 키를 포함시키지 않고도 여전히 해결책을 찾을 수 있다고 생각한다. 사용자는 API와 상호 작용합니다. 세션 비밀은 Facebook Connect에 의해 사용되며 응용 프로그램 비밀없이 API 호출이 가능합니다. API calls that can be made with a session secret은 자신의 데이터와 상호 작용하는 사용자에게만 제한되는 경향이 있습니다. 상태를 업데이트하고 권한을 부여하는 것은 확실히 세션 비밀, 연결 및 XFBML의 조합으로 할 수 있습니다.

Paul은 이미 답변했습니다. 애플리케이션 비밀번호를 공유하는 것이 Facebook의 서비스 약관을 위반하는 것입니다.

4

Facebook API를 사용하기위한 라이센스 계약을 위반하게됩니다. 그 합의의 일부는 당신이 당신의 비밀을 지키고 있다는 것입니다. 그렇지 않으면 규칙을 준수 할 것에 동의 할 때까지 사용자의 액세스가 비활성화됩니다.

정책 III.7은 매우 분명하다 : 그 당사자 응용 프로그램의 연산자로 당신의 대신하는 에이전트가 아닌

당신은 다른 자에게 비밀 키를 제공하지 않아야합니다,하지만 당신은 결코해야 광고 네트워크에 비밀 키를 제공하십시오. 귀하는 귀하의 계정 식별자하에 발생하는 모든 활동에 대한 책임이 있습니다.

http://developers.facebook.com/policy/

는 사용자 각각의 API 키를 얻을 수 있는지 확인하거나 구조를 다시 생각. 페이스 북이 당신의 접근을 끝내기를 원하지 않고, API 키에 등록하는 것은 정당하지 않다.

0

다른 사람들이 자신의 웹 서버에서 사용할 수있는 소프트웨어를 개발하는 경우이를 사용하는 각 웹 사이트는 별도의 응용 프로그램으로 등록해야합니다. 이렇게하면 사용자는 모든 웹 서버에 액세스 권한을 부여하거나 부여하지 않고 각 코드 인스턴스에 부여 된 액세스 권한을 제어 할 수 있습니다.

새로운 앱을 만드는 것은 어렵지 않습니다. 그냥 http://www.facebook.com/developers/createapp.php

관련 문제