2012-10-18 5 views
0

우리는 크로스 도메인 로그인을 구현해야하는 수많은 웹 사이트를 보유하고 있습니다. 누군가 자격 증명으로 사이트 X에 로그인 한 경우 사용자가 사이트 A 또는 B로 이동할 때 사이트 A 또는 B에 자동으로 로그인해야합니다.페이스 북은 다양한 웹 사이트에 대한 로그인 구현을 좋아합니다.

또한 공통 UI/자바 스크립트를 제공하고자합니다. 사이트는 HTML 파일을 넣을 수 있으며 내부적으로 공통 API를 호출하여 사이트 A 또는 B에 사용자를 로그인합니다.

이것은 Facebook의 내용과 유사합니다. 페이스 북에 로그온하여 사이트로 이동하면 해당 사이트에 대한 사용 권한을 주면 자동으로 로그인됩니다.

또한 페이스 북 소셜 플러그인이있는 모든 사이트에 동일한 페이스 북 UI가 존재하며 페이스 북 플러그인을 포함한 사이트는 자체 서버에서 페이스 북을 호출 할 필요가 없습니다. 브라우저).

facebook 호출에 해당 앱에서 사용하는 API 키가 포함되어 있지만 API 키가 표시되어 더 이상 비밀이 아닙니다. FB는 동일한 API 키로 서버에 대한 임의의 DOS 공격을 어떻게 방지합니까? 사용자가 임의로 IP 주소를 변경하면 어떻게됩니까?

FB와 마찬가지로 API 키가 노출 된 이후로 X와 연결된 모든 웹 사이트 A, B를 구현하려고합니다. 어떻게 다른 악성 사이트를 중지시킬 수 있습니까, ABC .com이 동일한 API 키를 사용하고 네트워크의 일부인 것처럼 행동합니다.

호출이 브라우저 및 자바 스크립트에서 발생했기 때문에 API 키가 항상 노출되어 있다고 생각합니다. API 키가 비밀로 유지되도록 항상 호출이 서버에서 수행되어야합니까?

필자의 경우, A, B 등의 다양한 네트워크 웹 사이트의 UI가 X 서버에 무언가를 전달할 수 있으므로 서버 X는 호출이 실제로 신뢰할 수있는 원본에서 왔으며 가장하지 못하도록 식별 할 수 있습니다 ?

투코

답변

1

내가 페이스 북에 대한 호출이 응용 프로그램에 의해 사용되는 API 키를 포함하는 것을보고 감사 없지만, API 키를 볼 수 있기 때문에, 더 이상 비밀이다.

아무도 본 적이 없습니다.

FB는 동일한 API 키로 서버에 대한 임의의 DOS 공격을 어떻게 방지합니까? 사용자가 임의로 IP 주소를 변경하면 어떻게됩니까?

특정 작업의 경우, f.e. 로그인하면 앱은 앱 설정에서 설정된 특정 도메인에 묶여 있습니다. 내 앱이 example.com의 Facebook을 통한 사용자 로그인을 허용하는 경우 로그인하지 않아도됩니다. net은 내 앱 ID를 사용하고 사용자가 도메인에서 연결하도록합니다.

브라우저와 자바 스크립트에서 호출 된 것이므로 API 키가 항상 노출되어 있습니다. API 키가 비밀로 유지되도록 항상 호출이 서버에서 수행되어야합니까?

비밀 번호을 사용하는 통화는 항상 서버 측에서만 수행해야합니다. 서버 X가 호출이 참으로 신뢰할 수있는 소스로부터 오는 상태인지 식별 ​​할 수 있도록 같은 다양한 네트워크 웹 사이트의 사용자 인터페이스가, B는 등, X의 서버에 뭔가를 전달할 수있는 방법을 내 경우

, 가장하지 않습니까?

Facebook JS SDK는 현재 실행중인 도메인을 확인합니다.

클라이언트 측에서 조작 할 수 있으므로 다른 보안 방법도 있습니다. 예를 들어 Facebook은 을 특정 도메인 아래의 주소로 클라이언트을 리디렉션하고 서버 측 통신에서는 앱의 비밀을 사용하여 확인할 수있는 signed_request를 제공합니다.

+0

감사합니다. 대답은 약간 해결하는데 도움이되었습니다. – Tuco