2012-01-16 9 views
6

Actualmente estoy desarrollando una aplicación multiplataforma que usa Twitter, incluida la autenticación a través de oAuth.¿Cuáles son los riesgos de exponer la clave oauth no tan secreta? ¿Hay alguna solución?

He visto muchas aplicaciones existentes y la mayoría de ellas parecen incluir tanto la identificación como la clave secreta dentro de la aplicación.

¿Cuáles son los riesgos de hacer esto? ¿Es solo que alguien puede "descargar e inspeccionar" el archivo binario de tu aplicación para extraer tu clave, y luego puede pretender ser tu aplicación (estilo phishing)? ¿O hay otros riesgos?


Además de los riesgos, ¿hay soluciones o soluciones que las personas conozcan?

La única solución que he visto es que algunas personas solucionan esto enrutando todas las llamadas de Twitter a través de su propio sitio web, p. Ej. OAuth Twitter with only Consumer Key (not use Consumer Secret) on iPhone and android - pero esto parece bastante lento y costoso - Prefiero no enrutar todas las llamadas a través de mi propio servicio web si puedo evitarlo (o he entendido mal la solución - ¿es solo la autenticación que se envía a través de un sitio web?)

+0

Entiendo su preocupación, pero a menos que la aplicación sea grande y popular, realmente no creo que sea un problema. Y si hacen ingeniería inversa de tu aplicación, simplemente pones los términos que eso es ilegal y los demandas :) – f2lollpll

Respuesta

1

La solución alternativa que se me ocurrió es buscar la clave secreta de su servidor web (a través de SSL) mediante una llamada de servicio web autenticado. Puede guardarlo en la aplicación cliente (solo en la memoria). Úselo cuando lo necesite sin conectarse nuevamente al servidor.

La desventaja que veo es que alguien probablemente todavía podría ejecutar su aplicación bajo un depurador e inspeccionar la memoria y obtener la clave.

Cuestiones relacionadas