2011-09-01 12 views
10

Zgodnie z dokumentami Oauth2 na Facebooku, przepływ po stronie klienta nie wymaga tajnego klucza klienta. Strumień po stronie klienta może być używany zarówno w aplikacjach internetowych rodzimych, jak i mobilnych.Dlaczego natywny przepływ Oauth Google wymaga tajnego klienta?

Jednak natywny przepływ Oauth2 google wymaga tajemnicy klienta http://code.google.com/apis/accounts/docs/OAuth2.html#IA.

W tym przypadku tajny klient może zostać skradziony przez hakera za pomocą narzędzi inżynierii odwrotnej.

Czy ktoś może wyjaśnić, dlaczego tak zostało zrobione?

Odpowiedz

11

Zgodnie z postem od Googler, głównym powodem jest to, że używają tych samych bibliotek dla aplikacji po stronie serwera i aplikacji natywnych. Wygląda na to, że nie traktują one parametru client_secret jako wrażliwego w kontekście aplikacji natywnej, ale planują w końcu wycofać ją z zainstalowanego strumienia aplikacji.

Od https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8:

Nie oczekujemy te tajemnice pozostać tajemnicą, tak daleko jesteśmy w tym ich przeważnie tak jest to wygodne w użyciu bibliotek dzisiaj, i oczekiwać, aby zatrzymać wymagając od nich w pewnym momencie w przyszłości.

Chociaż może to zabrzmieć źle, należy pamiętać, że OAuth nigdy nie miał na celu uniemożliwić złośliwym użytkownikom wysyłania żądań w kontekście aplikacji mobilnej/komputerowej.

Jeśli obawiasz się ujawnienia argumentu client_secret, opisany jest tu również przepływ po stronie klienta: http://code.google.com/apis/accounts/docs/OAuth2.html#CS O ile mogę stwierdzić, przepływ po stronie klienta nie wymaga client_secret i działałby dobrze z pulpitu lub Aplikacja mobilna.

-Chris

Powiązane problemy