Cómo asegurar una API para una aplicación Geo

Hay varias formas en que un usuario puede rastrear los datos intercambiados por cualquier aplicación solo móvil.

Para las comunicaciones con el servidor, su mejor opción sería una conexión segura al servidor Geo-API. Utilice el método más seguro que admita la API que preferiblemente incluye alguna forma de cifrado. Si tiene algún control sobre el servidor Geo-API, aumente su seguridad.

Ahora, en lo que respecta a la ubicación geográfica del dispositivo (Android / iOS) en la que se ejecuta la aplicación, la aplicación puede hacer poco, ya que básicamente utiliza el SDK para recuperar esta información.

Además de los métodos mencionados por Arun Tam y Connor Besancenez, un desarrollador / hacker experimentado puede escribir un módulo que se encuentre entre el sistema operativo y todas las aplicaciones específicas, leyendo o modificando cualquier información, incluidas las ubicaciones geográficas falsificadas. Los usuarios novatos también pueden descargar sin saberlo malware que reproduce todo tipo de travesuras, incluida la suplantación de ubicación.

Ahora, si la aplicación solo muestra “cosas dentro de un radio”, la mayoría de los usuarios no estarían interesados ​​en falsificar su ubicación. Ocasionalmente, pueden estar interesados ​​en elegir una ubicación diferente y encontrar cosas circundantes. Por ejemplo, si desean planificar con anticipación cuando viajan o se mudan. Pero de lo contrario, han instalado la aplicación para un propósito específico.

Geo-API también hace que sea bastante fácil convertir una ubicación a un nombre de calle / ciudad / estado. Mostrar eso tranquilizará al usuario. Si muestra algo inesperado, el usuario siempre puede verificarlo dos veces con otras aplicaciones de ubicación como Google Maps, Siri, Waze, etc. Si todos están equivocados, el usuario tiene algunos problemas serios de malware que deberían estar fuera del alcance de El soporte de su aplicación.

Gracias por el A2A.

Primero comienza con HTTPS para proteger los datos en tránsito, entre la aplicación y su punto final de API.

A continuación, asegúrese de tener la autenticación habilitada para API, de modo que solo los usuarios autorizados puedan acceder a la API.

Ahora que se trata de una API, debe analizar cómo se usará su aplicación, si involucra a usuarios que tienen su propia información de inicio de sesión o es una aplicación pública (como Yelp y otras cosas)

Dependiendo de la respuesta a la pregunta anterior, puede diseñar cómo obtener las credenciales para la aplicación.

En términos técnicos / de OAuth, tendrá un ID de cliente y un secreto para la aplicación, y luego usará otros parámetros para autenticar al usuario. Los otros parámetros tienen que ser un proceso seguro que, incluso si alguien realiza ingeniería inversa del código, no debería ser capaz de idear una forma de engañar a su cliente para obtener la información que tiene.

Por lo tanto, es posible y factible, solo depende de cuál es el riesgo que está tratando de abordar y en qué medida desea ir para evitar que alguien lea los datos.

Puede omitir la parte de autenticación, encontrar una forma de establecer un cliente y generar claves, registrarse en el servidor y luego cifrar los datos a medida que salen del cliente. Deberá confiar en la aplicación + HW (Apple, SamSung, etc.) para proteger las teclas, etc.

Básicamente, todo se reduce a “Modelo de amenaza” para sus datos, donde define cómo se producen, consumen y transmiten los datos, luego sigue los datos y crea todos los casos de mal uso y luego tiene un plan para abordar cada uno de ellos.

Si la aplicación gana tracción, tendrás suplantación de ubicación. Cualquier usuario de iPhone puede conectar su teléfono a XCode y falsificar su ubicación en cualquier lugar que desee. Realmente no puedes combatir eso. Los usuarios lo hacen MUCHO en PokemonGo.

Sin embargo, si solo desea proteger la API, me aseguraré de que cualquier método de autenticación que utilice esté encriptado. Los tokens, por ejemplo, no deben almacenarse en una base de datos sin cifrar. También asegúrese de usar contraseñas de sal y hash. Aparte de eso, me aseguraría de que no codifique ninguna clave secreta en su Repo API en caso de que alguna vez se vea comprometida.

Si desea que solo se permita la aplicación, asegúrese de no activar ninguna solicitud sin ese token cifrado. Si alguien no está en la aplicación y no tiene un token, no debería poder enviar ningún tipo de solicitud

Superar la suplantación de ubicación es el mayor dolor de cabeza de los desarrolladores de Android en la actualidad.

Para Android :

Generalmente Todas las aplicaciones de suplantación de ubicación deben tener acceso a la ubicación simulada en las opciones de desarrollador. Por lo tanto, necesita una condición IF al abrir la aplicación.

  • Si la ubicación simulada (en la opción de desarrollador) está habilitada, obligue al usuario a anular la selección de la aplicación de ubicación simulada.

iOS :

La suplantación de ubicación no es posible en iOS. Entonces no necesitas preocuparte.

Su servidor? Mantenga una lista de aplicaciones “aprobadas” (números de serie o algo así) e ignore las solicitudes de fuentes no aprobadas.

¿El servidor de alguien más? No puedes controlar eso.

More Interesting

¿Cuáles son las aplicaciones móviles mejor diseñadas que no son aplicaciones iOS?

Cómo usar las preferencias compartidas en Andriod para guardar el contador

¿Cuál es mejor: Google Voice o Ribbit Mobile? ¿y por qué?

¿Cuál es la mejor manera de clonar una aplicación existente como Whatsapp o Waze?

Estoy buscando una buena aplicación de catalogación de libros. Quiero poder agregar al autor una vez y luego agregar cada libro por él. ¿Hay alguna aplicación como esa?

¿Parece probable que el uso de aplicaciones móviles domine aún más la navegación web?

¿Qué hace que aplicaciones como Snapchat e Instagram sean tan exitosas?

¿Snapchat guarda en secreto las instantáneas de todos en un servidor?

¿Cuál es la mejor aplicación para pasar mi tiempo libre?

¿Puedes usar un emulador para probar una aplicación de Android que usa un GPS, o necesitas usar un dispositivo Android?

¿Qué aplicaciones debo usar cuando viajo a Europa?

¿Qué es una prueba de manejo de una aplicación?

¿Cuáles son los trucos de WhatsApp en la última y antigua versión de WhatsApp?

¿Qué aplicaciones móviles de mensajería de texto tienen soporte MMS para los mensajes que se envían a los usuarios sin la aplicación?

¿Hay algún SDK de chat similar a QuickBlox? Necesito 2 funciones: chat, en tiempo real; y una base de datos personalizada, para almacenar manualmente información del usuario como pasatiempos, lugares de nacimiento, así como el historial de mensajes, publicaciones, comentarios, etc.