Proxyman! Modern Web Debugging Proxy

Proxyman est une application pour macOS qui permet d'observer et de manipuler les requêtes HTTP/HTTPS/WS/WSS, donc principalement pour les développeurs. Proxyman agit en tant qu'intermédiaire et qui enregistre tout le trafic HTTP/HTTPS/WS/WSS entre vos applications macOS, iOS, Android et les serveurs, pour ceux qui connaissent le terme c'est tout simplement du MITM (Man In The Middle). Pour ce faire Proxyman génère de manière dynamique des certificats ce qui vous permet de voir le trafic HTTPS en texte brut. Proxyman est très complet avec un ensemble d'outils intégrés qui facilitent les procédures de debug. Il est entièrement écrit en SwiftNIO pour des performances élevées avec une consommation minimale des ressources système.

Interface graphique intuitive et réfléchie

Proxyman suit strictement les directives de l'interface humaine de macOS (et adapté au style de macOS Big Sur qui vient de sortir) et est soigneusement conçu pour rendre vos tâches simples et intuitives.

Parmis tous les outils intégrés à Proxyman, vous avez Proxy SSL qui permet de voir le trafic entre votre application (que ce soit le navigateur ou une application native) et le serveur, et ne nécessite aucune configuration compliquée. La vue en texte brut se fait rapidement en un seul clic, très pratique non ?

Proxy SSL

Vous avez également Map Local Tool qui vous permet d'utiliser le contenu des fichiers locaux en réponse à vos demandes, dès qu'il correspondent à vos règles. Globalement il permet de tester le comportement avec différentes réponses :

Local Map Tool

Breakpoint, qui peut arrêter une demande avant qu'elle n'atteigne le serveur ou arrêter une réponse avant qu'elle n'atteigne votre application. Vous pouvez ainsi modifier ces demandes/réponses pour tester les erreurs de l'interface utilisateur ou certaines fonctionnalités backend (pour de la sécurité par exemple) :

Breakpoint

Atlantis pour iOS qui est un petit framework iOS pour inspecter le trafic HTTP/HTTPS à partir de votre application iOS sans utilisation de HTTP Proxy Config, Install ou Trust any Certificate (pour les développeurs iOS) :

Atlantis iOS Framework

Je ne vais pas faire le tour de tous les outils intégrés à Proxyman, pour cela je vous invite à vous rendre sur le site officiel (ici) ainsi que le centre de documentation (ici) pour toutes les configurations et astuces (qui se montre forcément très pratique quand vous souhaitez faire quelque chose).

Proxyman est compatible à partir de macOS 10.12 et fonctionne d'ore et déjà sur macOS 11.0 (Big Sur) ainsi que sur les nouveaux MacBook (Air/Pro) fonctionnant sur la puce M1 (depuis la version 2.13.0).

Toutes les fonctionnalités principales sont gratuites pour les versions d'essai et premium. La version d'essai (gratuite) est limitée à 4 domaines épinglés, 4 règles de correspondance pour chaque outil de débogage avancé (map local/remote, breakpoint, allow/block list, scripting) et aucun nouvel onglet. La version premium quand à elle comprend un an de mises à jour, d'utilisation de plusieurs onglets et un nombre illimité de domaines épinglés avec des règles illimités pour les outils avancés. Si vous êtes souvent dans du débogage, Proxyman vaut très largement ce tarif.

Les tarifs des licences Proxyman (en date du 18/11/2020)

Nghia Tran, le développeur à l'origine, à réalisé un travail vraiment formidable. L'équipe se compose maintenant de 3 personnes en raison des fortes demandes d'évolutions dans le pipe (issues) et offre de manière très quotidienne des nouvelles features et des corrections à l'outil. Vous n'avez qu'à jetter un oeil sur la page changelog pour déterminer l'énergie et la cohérance mise dedans, et de mon point de vue je trouve ça juste remarquable. Vous pouvez le suivre sur Twitter ainsi que sur Github.

Quelques liens utiles de Proxyman :


Jeu concours : tentez de gagner une licence Proxyman ! (jeu terminé)

🎉 Félicitation à Amaury qui gagne une licence Proxyman (2 Mac devices). Les résultats sont ici. Merci à tout le monde d'avoir participé au concours et à Nghia Tran & Proxyman 🥰