Evitar el "cliente falso" para la aplicación ios

Tenemos una aplicación android y ios que envía datos y comandos a un servidor con http webservice. ¿Cómo puedo evitar la posibilidad de que los falsos clientes también puedan enviar algo al servidor? ¿Cómo puedo determinar serversidely si los datos / comando realmente viene de nuestras aplicaciones.

No puedes evitarlo. Hay varias técnicas para que sea más difícil para las personas que abusan de sus servicios.

Una comprobación simple puede ser comprobar el agente del usuario que llama su webservice. Otra muy común es utilizar una autenticación simple a través de la autenticación de usuario / contraseña en su servidor web. El nombre de usuario y la contraseña se incorporarán a tu aplicación.

Si tiene suficiente tiempo, debería pensar en usar una combinación de estos dos métodos más autenticación con un certificado ssl incrustado. Simplemente podría agregar esto a su proyecto y si alguien realmente quiere abusar de su servicio, tiene que extraer este certificado al menos forma de su aplicación.

Hay algunas otras técnicas útiles, pero no se puede evitar la ingeniería inversa o sniffing de red.

Sinceramente, fuxx

La solución más sólida no es intentarlo. Técnicas como la respuesta sugiere DasFuxx puede hacer que sea ligeramente más difícil, pero alguien siempre puede descompilar su aplicación y obtener los secretos que han incrustado en él.

En su lugar, siga la regla del desarrollo de juegos multijugador:

No confíe en el cliente.

No piense en su aplicación como interfaz de usuario. Piense en su protocolo de red / API como la interfaz de usuario; A continuación, diseñar esa interfaz para que no se puede abusar.

Puede que no sea posible hacerlo completamente, pero en la medida en que tenga éxito, tiene verdadera seguridad (en lugar de luchar contra la misma batalla perdida que los sistemas DRM).

Implementaría oAuth. Consulte el siguiente enlace para obtener más información sobre cómo implementar dicha solución.

No puedes. Es así de simple…

  • Buenas prácticas: ¿Cómo puedo proteger las solicitudes Http (por ejemplo, inicio de sesión) desde una aplicación móvil
  • Comprobación de que el mensaje provenía de un punto específico de aplicación / punto final
  • ¿Qué protege las contraseñas de AccountManager de Android de ser leídas por otras aplicaciones?
  • ¿Es seguro almacenar nombre de usuario y contraseñas en un SQLite local db en Android?
  • ¿Cómo puedo restringir el acceso a mi API REST sólo a clientes autorizados?
  • Seguridad de SharedPreference de Android
  • Android RSA Generación de pares de claves - ¿Debo usar Java estándar / Bouncy Castle / Spongy Castle / JSch / Other?
  • Protección de contraseña de Android Keystore
  • Construcción de BoringSSL y Conscrypt y agrupación con Android apk
  • ¿Cómo puedo importar un certificado de la CA en Android 4.4.2 en el emulador?
  • Seguridad de base de datos Sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.