¿Asegurar las APIs de las aplicaciones Rogue / Fake iOS o Android?

2

¿Cómo protege una API web no pública de una aplicación malintencionada en la que un desarrollador ha descubierto cómo realizar algunas solicitudes?

Toma la aplicación de Instagram como ejemplo: Instagram no tiene una solicitud de API pública para los medios POST. Su política ha sido permitir solo a los usuarios publicar a través de la aplicación oficial de Instagram.

Sin embargo, hay servicios que parecen haber podido POSTAR medios desde fuera de la aplicación. Asumiría que un desarrollador ambicioso logró descompilar la aplicación iOS o Android y descubrir las solicitudes que permitieron el POST-media. Por lo tanto, este desarrollador tiene la capacidad de enviar spam a Instagram con publicaciones automatizadas.

También supondría que Instagram habría intentado de alguna manera proteger su API mediante una clave API almacenada en la aplicación o por algún otro medio.

Mi pregunta es: ¿Cómo proteges una aplicación contra este tipo de ataque, y si no puedes protegerte de esto, cuáles son las siguientes mejores opciones?

    
pregunta ryd3r 10.12.2015 - 05:17
fuente

1 respuesta

3

Si está ejecutando un servicio web, siempre debe asumir que el lado del cliente de su servicio nunca puede protegerse contra la manipulación del usuario. Todo lo que le envíe al usuario puede diseñarse mediante ingeniería inversa, es solo cuestión de tiempo.

La solución a esto es hacer sus verificaciones de seguridad en el lado del servidor. En su ejemplo de spam en las publicaciones de Instagram, es probable que eviten esto al limitar las llamadas a su API. Por ejemplo, a todos los usuarios solo se les permite publicar, por ejemplo, 2 imágenes por minuto, y cualquier llamada a la API que intente publicar más que eso resultaría en una publicación fallida y devolvería un error HTTP de la serie 400.

Entonces, en su ejemplo de Instagram, realmente no pueden evitar que alguien envíe sus propias solicitudes de API. Por lo tanto, deben realizar la validación del lado del servidor de las solicitudes de API que reciben para asegurarse de que son todas legítimas y de que no se está abusando de la API.

    
respondido por el Maximillian Laumeister 10.12.2015 - 05:27
fuente

Lea otras preguntas en las etiquetas