Cómo evitar el acceso a mi servidor por clientes no autorizados

Tengo una aplicación para Android. La aplicación lee datos de mi servidor y los muestra al usuario.

Ahora, la pregunta es: ¿Cómo evitar que alguien haga una aplicación falsa y solicite a mi servidor que envíe datos a esta aplicación?

Esto desperdicia tanto mi ancho de banda y hace uso de mi contenido mientras que permite a las personas crear aplicaciones competitivas utilizando mis datos.

Como ustedes saben, tratar de evitar la ingeniería inversa es como tratar de detener la piratería: imposible. Android ingeniería inversa, especialmente es como robar dulces de un bebé.

4 Solutions collect form web for “Cómo evitar el acceso a mi servidor por clientes no autorizados”

Utilice símbolos API. Soluciones posibles:

  • Ejemplo de HTTP Basic Auth (sólo si está utilizando https)
  • Parámetro de consulta (como https://example.com/resource?token=3786428762 ) (también sólo sobre https)
  • HMAC – sofisticado y más complejo de implementar, requiere rediseño substainial de la comunicación backend, pero el más seguro

Pero tenga en cuenta que, de cualquier manera usted necesita de alguna manera hardcode una clave / sal / hash / contraseña en su aplicación que puede ser invertida de ingeniería de una manera u otra. No existe una posibilidad real (práctica) en Android para evitar que los clientes deshonestos accedan a su backend (especialmente en dispositivos con raíces)

Recomendaría HTTP Auth básico ya que es el mejor compromiso en el esfuerzo, la usabilidad y la seguridad (También es utilizado por la mayoría de los apis públicos) Es muy fácil de implementar, ya que sólo tiene que enviar un encabezado http codificado, es un apoyo por la práctica cada servidor http y no cambia su api y lo contamina con el parámetro de consulta y también es razonable seguro si se utiliza sobre https.

Haga que el servidor requiera una clave API y ofusque la clave en su código, consulte esta respuesta: Prácticas recomendadas para almacenar claves API privadas en Android

Si utiliza el servidor http, puede utilizar http auth basic

Autenticación básica de acceso

Puede utilizar algo como reCAPTCHA para verificar que el cliente no es un bot.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.