¿Cómo proteger el extremo de API del abuso en la aplicación móvil?

2

Supongamos que tengo una aplicación móvil que recupera las noticias de una url en mi servidor.

GET/ https://example.com/api/v1/newsfeed

¿Hay alguna forma de restringir el acceso a este punto final solo desde la aplicación móvil, no desde otras fuentes como un script (Python, NodeJs, ...) o software (Postman, Browser ...)?

Supongo que esta URL debe compilarse en binario y, dado que la solicitud está protegida (https), el software de rastreo de paquetes solo revelará la URL base (example.com en este caso) y el punto final & El cuerpo será encriptado.

Pero supongo que todavía hay formas de conocer este punto final. Sospecho dos posibilidades

  1. Instalar un certificado de terceros en el teléfono móvil para descifrar los paquetes
  2. Usando un descompilador

Tengo una idea aproximada, pero no estoy seguro de las posibilidades técnicas de estos dos métodos.

    
pregunta TSR 02.12.2018 - 16:01
fuente

2 respuestas

2

Puede mitigar la amenaza de su primera posibilidad implementando la fijación de certificados. Esto evitará que su APP emita y confíe en un certificado de terceros.

En cuanto a la descompilación, puede intentar ocultar la URL, pero el análisis dinámico aún podría encontrar la URL.

Es posible que desee realizar una comprobación en el lado del servidor. Haga que el servidor presente un desafío y que el cliente realice un trabajo para crear una respuesta al desafío. Eso puede aumentar la dificultad de cualquier exploit escrito.

Una solución simple es verificar el encabezado de la solicitud y asegurarse de que cosas como el agente de usuario y otros atributos coincidan con lo que usted espera.

    
respondido por el Daisetsu 02.12.2018 - 18:11
fuente
1

Haga que la aplicación se registre en el servidor: almacene de forma segura un secreto en el dispositivo como parte del proceso de registro. Esto solo aborda un descompilado del apk

En lo que respecta al protocolo, no importa si su Python o un Dispositivo es igual en el otro extremo.

Si un atacante tiene acceso físico al teléfono desbloqueado o puede instalar cualquier cosa en él, no hay controles. La cuenta de usuario está violada y pueden llamar a esa API.

    
respondido por el McMatty 02.12.2018 - 21:32
fuente

Lea otras preguntas en las etiquetas