Proxygen, tu proxy HTTP aliado para iOS y macOS
Aunque a día de hoy mi trabajo no es 100% técnico, si que me sigue gustando cacharrear. Bien sea en mis ratos libres o bien sea para entender mejor los productos en los que trabajo. Una de las herramientas que más me ayuda en esas tareas es un buen proxy HTTP, que así resumido es un programa que se pone entre las aplicaciones que usas y la conexión real a internet para ayudarte a ver el tráfico que realmente se genera. ¿Un poco hacker? Pero necesitas acceso físico al dispositivo, así que totalmente bajo control 😉
Desde hace unas semanas estoy probando Proxygen como proxy HTTP en mi Mac y la verdad que estoy bastante contento. Si a nivel diseño la aplicación me encantó desde el primer momento en que la conocí (creo que mirando alguna cosa aleatoria), al pegar un ojo a su documentación me quedé muy contento por 2 motivos:
- La documentación está muy bien hecha. No solo a nivel profundidad y/o ejemplos, sino que tienes capturas de pantalla que te acompañan por todo el proceso.
- Las funcionalidades que ofrece la aplicación están totalmente a la par con otras alternativas que hay en el mercado.
Sintiéndolo mucho si estás curioseando en este humilde blog de forma aleatoria…. esta entrada va a tener un contenido un poco técnico… pero es que estoy hablando de una herramienta técnica, tampoco es que queden muchas más opciones jeje.
Configuración inicial
Normalmente, la parte de la configuración inicial es la que más dolores de cabeza suele dar en este tipo de herramientas. Generar el certificado de la máquina e instalarlo de forma local, exportar el certificado a otros dispositivos, definir la confianza en los mismos… la verdad que esta vez con Proxygen no tardé más de 5 minutos en tener listo tanto mi Mac como el iPhone con el que iba a probar la aplicación en sus inicios.
A eso ayudan tanto la sección de configuración dentro de los ajustes como la app que hay disponible para iOS (hablaré de ella en el siguiente punto). Para configurar los certificados en mi ordenador no hizo falta más que un click en la propia aplicación de Proxygen y otro par de clicks en las ventanas del sistema que aparecen automáticamente. Simplemente con eso mi dispositivo ya estaba listo para empezar a trabajar.

Por supuesto, si lo que necesitas es interceptar el tráfico del propio dispositivo en el que has configurado el proxy u otro dispositivo no iOS todavía tienes que configurar el proxy del sistema y/o importar algún certificado en algunas aplicaciones (algunos navegadores, por ejemplo). Pero la parte principal de la configuración ya estaría hecha. Tu ordenador ya está listo para ayudarte a descubrir algunos secretos.
App de compañía en iOS
La verdad que dudaba si hablar de esta aplicación directamente o esperar un poco más, pero… vamos con ello!
Pues tal y como he puesto en el encabezado… no se trata solo de una app de compañía, es muchísimo más que eso. De hecho, Proxygen para iOS, es tu propio proxy integrado en el dispositivo desde donde podrás:
- editar peticiones ya realizadas, por ejemplo, para probar diferentes respuestas de la API sin tener que realizar la acción de nuevo
- añadir reglas para
- editar la petición antes de enviar: típica situación en la que no tienes acceso al código y simplemente quieres cambiar un par de parámetros para ver como responde el servidor
- editar la respuesta antes de que llegue a la aplicación: parecido a lo anterior, pero esta vez quieres probar como reacciona la app ante una respuesta un poco diferente
- definir respuestas (en su totalidad) a ciertas peticiones en caso de que necesites probar varias veces el mismo escenario asegurando los valores
- descartar peticiones/respuestas directamente para forzar errores de comunicación
- ver las peticiones y respuesta en diferentes modos: bruto, hexadecimal, JSON, ordenado por campos…

Tal y como puedes entender en este punto es un proxy totalmente funcional que te puede sacar de más de un apuro en caso de necesidad para hacer ciertas comprobaciones desde el propio dispositivo sin ningún tipo de dificultad.
Pero las funcionalidades de la aplicación de iOS no se limitan a ser un proxy independiente, sino que te facilitan enormemente la configuración de tu ordenador como proxy de tu dispositivo móvil.
A nivel personal tengo que reconocer que lo que más me molesta de usar los proxys es tener que configurar la red WiFi de forma apropiada cada vez que quiero usarlo. ¿Por qué? Porque soy un desastre y al acabar de trastear me olvido de des-configurarlo, el móvil deja de tener internet y no me doy cuenta hasta… mejor no decir hasta cuando no me doy cuenta jaja.

Pues gracias a la aplicación de Proxygen para iOS activar el proxy es tan sencillo como pulsar un botón. Durante la sesión, en la pantalla de bloqueo, tendrás una live notification que te indica que la sesión está activa y durante cuanto tiempo lleva activa. Así es muy difícil que te olvides de que tienes el proxy activo. Una vez has terminado con tu sesión, simplemente pulsas el botón de End Session y el proxy está desactivado.
Todas estas opciones (proxy integrado en el dispositivo y configuración del ordenador como proxy con 1 click) son posibles gracias a que, realmente, la aplicación de iOS funciona como una VPN dentro del propio iPhone. De este modo consigue capturar todo el tráfico y redirigirlo al propio dispositivo, o al ordenador, según sea necesario. Por eso en el asistente de configuración tienes que instalar la extensión de VPN.
App de escritorio
Que sí, que todo lo que estoy contando está muy bien. La app de iOS funciona de maravilla y te puede sacar de más de un apuro. Resulta que activar y desactivar el proxy en el iPhone es un click pero… ¿y la aplicación de verdad, la del ordenador? Porque normalmente los que usamos este tipo de aplicaciones las queremos usar con una pantalla de verdad, pudiendo hacer reemplazos de las peticiones/respuestas un tanto avanzados, etc…
Como te puedes estar imaginando, Proxygen para macOS también cumple más que con creces en la parte funcional. La verdad que no he tenido ningún tipo de queja durante el tiempo que he usado la aplicación, ni tampoco he echado en falta ninguna utilidad respecto a otras herramientas que he usado en el pasado.
De entrada vas a encontrarte con la interfaz típica en la que irán apareciendo las peticiones (con múltiples detalles como el servidor, método, URL, estado, tamaño, tipo de respuesta…) a medida que los dispositivos las van generando. Al pulsar sobre una petición podrás ver tanto los detalles de la petición y su respuesta en múltiples formatos. Un detalle que me ha gustado de la visualización en JSON es que incluye la opción de visualización en árbol para poder expandir y contraer los diferentes objetos con facilidad.

Por supuesto, también vas a contar con un buscador para filtrar toda esa maraña de peticiones que acabas de gestionar de todas las formas y combinaciones que puedas imaginar. ¿Necesitas encontrar una petición al host ejemplo.com, que en la URL contenga masterpassword y en el body incluya una expresión regular? Sin problema, creas 3 filtros y los activas a la vez.
También me gustaría hacer mención especial a herramientas como la automatización de test y el gestor de diffs integrado por defecto:
- Herramienta de testing: no podía ignorarlo. De verdad. La funcionalidad en si misma ya merece una mención especial, pero es que en el momento que navegas por la documentación que han creado… es una pasada. Puedes configurar varias carpetas de test, ejecutarlos de múltiples formas, ver un resumen de los resultados o el log al detalle… de verdad. Esto para mí ha sido una clase magistral de como crear un producto, no solo la herramienta, sino la documentación y el acompañamiento al usuario.
- Diff integrado: seguramente que te estarás riendo de mí ahora mismo. Una herramienta de diff no es para tanto… hasta que estás enfrascado haciendo debug de un detalle raro, necesitas hacer un diff y tienes que buscar otra aplicación. En Proxygen el diff está integrado y no tienes más que hacer click derecho para elegir si iniciar el diff de la petición o la respuesta y ya está.
Por supuesto que también vas a tener disponibles las configuraciones típicas para limitar o excluir la intercepción del tráfico a ciertos dominios, configurar las reglas de reemplazo de peticiones y respuestas de forma bastante amigable, poder gestionar de una forma tremendamente sencilla las cookies que se han ido generando durante la sesión, exportar sesiones para guardarlas y/o compartirlas con tus compañeros, definir reglas para interceptar el tráfico… hasta vas a tener disponible una herramienta para hacer transformaciones (hashes, base64, diferentes compresiones…) en milisegundos!!

Interfaz e integración
Sí, voy a ser algo… superficial?, juzgar al libro por la portada? Honestamente, me da igual que estés pensando eso ahora mismo, pero es que esta sección merece su propio apartado. Aunque solo pueda escribir unas líneas sobre el tema, merece la pena, de verdad.
Es bastante habitual que estas herramientas técnicas sean un tanto grises. Aplicaciones destinadas a servir un propósito y focalizarse en que lo hagan bien. Ya estaría. Pero… es que… no es el caso.
La interfaz se nota que está muy cuidada. Totalmente integrada con el sistema operativo, con modos claro y oscuro, popups que tienen una sombra alrededor, ventanas que tienen la animación justa mientras se están desplegando, pequeños tonos de contraste aquí y allá para mejorar la legibilidad…….. la lista de pequeños detalles es interminable.
Y si te parece poco… no, no es otra aplicación basada en Electron esperando agotar tu RAM al mínimo descuido. Al fin!!!
Conclusión
¿Pues que voy a decir de Proxygen que no haya dicho ya a lo largo de la entrada? Que me encanta, así de sencillo.
Me gustó la facilidad con la que pude configurar todo, me encantó la aplicación para iOS que me permite activar y desactivar el proxy del dispositivo con un click, agradezco enormemente la notificación activa (como traducir live activity?) que te indica que tienes una sesión activa desde hace X minutos, me encanta que tenga todas esas herramientas (diff, transformaciones…) directamente integradas… y por encima de todo eso es que la aplicación es bonita!
De verdad, he probado la aplicación durante varias semanas habiendo probado muchas alternativas en el pasado. Por supuesto que cada solución tiene sus particularidades, sus pros y sus contras. Pero personalmente creo que Proxygen tiene un equilibrio entre agilidad (uso no demasiado alto de recursos), interfaz, herramientas disponibles y documentación que roza la perfección. Además que tiene un precio bastante contenido, sobre 58$ la licencia personal con descuentos de forma bastante habitual.
Si necesitas una herramienta de este tipo y utilizas macOS como SO principal, yo no lo dudaría un momento la verdad!
Proxygen
- Interfaz 95
- Funcionalidad 100
- Herramientas integradas 100
- Sencillez de uso 90
- Precio 90
- Media 95
Resumen
- App de compañía para iOS
- Sencillez en la configuración
- Herramientas integradas disponibles
- Integración con el sistema operativo
Puntos positivos
- Sólo disponible para macOS?