2011-09-01 9 views
10

Según los documentos de Facebook oauth2, el flujo del lado del cliente no requiere el parámetro secreto del cliente. El flujo del lado del cliente se puede utilizar en aplicaciones web nativas y móviles.¿Por qué el flujo de oauth2 nativo de Google requiere secreto del cliente?

Sin embargo, el flujo oauth2 nativo de google requiere secreto de cliente http://code.google.com/apis/accounts/docs/OAuth2.html#IA.

En este caso, el hacker puede robar el secreto del cliente utilizando herramientas de ingeniería inversa.

¿Alguien puede aclarar por qué se hizo de esta manera?

Respuesta

11

De acuerdo con una publicación de un Googler, la razón principal es que usan las mismas bibliotecas para las aplicaciones del lado del servidor y las aplicaciones nativas. Parece que no consideran que client_secret sea sensible en el contexto de una aplicación nativa, pero planean eliminar gradualmente el flujo de aplicaciones instaladas.

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

No esperamos que esos secretos para mantenerse secreto hasta el momento estamos incluirlos en su mayoría por lo que es conveniente utilizar con las bibliotecas de hoy, y esperar a dejar de exigirles que en algún momento en el futuro.

Si bien puede sonar mal, tenga en cuenta que OAuth nunca tuvo la intención de evitar que los usuarios maliciosos forjen solicitudes en el contexto de su aplicación móvil/de escritorio.

Si le preocupa exponer client_secret, también está el flujo del lado del cliente que se describe aquí: http://code.google.com/apis/accounts/docs/OAuth2.html#CS Por lo que puedo ver, el flujo del lado del cliente no requiere client_secret y funcionaría bien desde un escritorio o aplicación movil.

-Chris

Cuestiones relacionadas