Cuando validamos las peticiones enviadas desde un sitio web lo más común es utilizar la consola de desarrollador que ofrece cada navegador, esto se puede hacer sin necesidad de instalar ningún complemento adicional ni ninguna configuración especial. Pero, ¿qué pasa con las apps?, ¿cómo podemos validar que se envían las peticiones esperadas con el contenido deseado?. Hace unos días, mi compañero, Saúl Fernández, explicaba la forma en la que se recopilan datos en una aplicación móvil. En este post hablaremos de cómo validar las peticiones que se envían con la herramienta Charles Proxy.
¿Qué es Charles Proxy?
Comenzaremos por definir qué es y para qué sirve ésta herramienta. Se trata de un proxy multiplataforma que se ejecuta en nuestro pc y registra todo el tráfico entre navegador e internet. Es habitual utilizar esta herramienta para hacer la depuración de apps nativas de forma fácil, rápida y segura.
¿Cómo se configura?
Para configurar Charles Proxy es necesario seguir una serie de pasos que veremos en detalle a continuación:
Paso 1:
En primer lugar, es necesario instalar Charles Proxy en nuestro pc que estará disponible en este enlace. Una vez instalado, habilitaremos el puerto 8888. Para ello es necesario acceder desde el menú a Proxy>Proxy Settings y, una vez dentro, se pone el puerto en el apartado HTTP Proxy.
Paso 2:
En el apartado SSL Proxying Settings, dentro del menú proxy, habilitaremos la pestaña “Enable SSL Proxying” para tener acceso al contenido de aquellas peticiones que viajen bajo protocolo seguro. Se puede usar *.* para incluir todos los dominios.
Paso 3:
Desde el dispositivo móvil se debe acceder a la página charlesproxy.com/getssl para instalar el certificado que se descargará automáticamente una vez se accede al enlace. Esto es necesario para que las peticiones seguras estén accesibles desde Charles. Cuando se completa la descarga, se muestra una pantalla donde se solicita el nombre del certificado que es “Charlesproxy”. Será necesario, además, bloquear la pantalla de forma segura (pin o patrón) para completar la instalación.
Paso 4:
El siguiente paso es configurar la red WiFi en el móvil, para ello hay que conectarse a la misma red que desde el pc. En las opciones avanzadas de la red se selecciona ajustes de proxy “Manual” y se indica que la IP con la conectarse es la misma que la del equipo. En nuestro caso nombre de host: 192.168.0.161 y puerto: 8888.
Paso 5:
Cuando se haya completado el paso anterior, Charles abrirá una nueva ventana donde se tiene que permitir el acceso al dispositivo móvil que está intentando conectarse si no es así será necesario cerrar y abrir de nuevo la herramienta hasta que se muestre la ventana que permita aceptar la conexión.
Paso 6:
Una vez confirmado el acceso se empiezan a mostrar las peticiones que entran desde el dispositivo móvil, dejando acceder de esta forma al detalle de las peticiones como se puede ver la siguiente captura:
Siguiendo estos pasos, ya podremos analizar todas las peticiones enviadas desde la app de la misma forma que se analiza en una web desde cualquier navegador.
Y tú, ¿has trabajado ya con esta herramienta?, ¿lo has hecho con otro objetivo que no sea el de validar el tráfico en apps?