Un nouveau standard ouvert pour décrire la façon de tester et appeler une API HTTP, très utile pour les clients HTTP type Postman.
Ce standard est proposé par Bruno, qui est un excellent client HTTP, offline-first et ouvert. Et cette initiative montre une volonté d'unir les nombreux clients HTTP sous un format commun et interopérable.
Ce format est complémentaire à OpenAPI.
L'idée à terme est de pouvoir stocker ces collections sous forme de fichiers YAML dans le même repo Git qui stocke le code de l'API elle-même.
Pour l'instant ce n'est évidemment supporté que par Bruno lui-même, mais j'espère que l'initiative va convaincre et être adoptée massivement.
Un nouveau standard ouvert pour décrire la façon de tester et appeler une API HTTP, très utile pour les clients HTTP type Postman.
Ce standard est proposé par Bruno, qui est un excellent client HTTP, offline-first et ouvert. Et cette initiative montre une volonté d'unir les nombreux clients HTTP sous un format commun et interopérable.
Ce format est complémentaire à OpenAPI.
L'idée à terme est de pouvoir stocker ces collections sous forme de fichiers YAML dans le même repo Git qui stocke le code de l'API elle-même.
Pour l'instant ce n'est évidemment supporté que par Bruno lui-même, mais j'espère que l'initiative va convaincre et être adoptée massivement.
Pendant que Burp Suite avale 500 Mo de RAM au démarrage,
HTTP Breakout Proxy
lui, tient dans un binaire de quelques Mo qui disparaît dès que vous fermez le terminal.
Alors HTTP Breakout Proxy c’est quoi ?
Hé bien les amis, c’est un proxy HTTP/HTTPS écrit en Go qui intercepte le trafic réseau en temps réel et vous propose une interface web pour analyser tout ce qui passe. Requêtes, réponses, headers, body, timing… Tout est capturé et affiché proprement dans votre navigateur.
Vous le lancez avec ./http-breakout-proxy, il écoute sur 127.0.0.1:8080, et vous ouvrez l’interface dans votre browser. Ensuite, si vous voulez débugger une API par exemple, vous lancez le proxy, vous configurez votre client HTTP pour passer par localhost:8080, et vous voyez tout passer en direct.
C’est vrai que
Burp
est devenu un monstre à tout faire avec scanner de vulnérabilités, fuzzer, crawler, extensions… Y’a aussi
Charles Proxy
que j’aime bien mais qui pèse dans les 100 Mo et nécessite une JVM complète. Et même
mitmproxy
, pourtant réputé léger, a accumulé tellement de fonctionnalités qu’il faut lire 50 pages de doc pour comprendre comment l’utiliser.
Avec HTTP Breakout Proxy, il y a moins de features c’est vrai mais ça va plus vite et c’est gratuit. Maintenant, au niveau technique, le projet utilise l’interception MITM classique. Vous installez le certificat racine fourni par le proxy, et il peut déchiffrer le trafic HTTPS qui passe par lui. Ensuite, l’interface web affiche tout en temps réel via Server-Sent Events. Vous avez du filtrage par regex, du color-coding configurable pour repérer visuellement les requêtes importantes, et même des charts Gantt pour visualiser le timing des connexions…etc.
Que demande le peuple ? Ah oui, y’a aussi l’export vers curl ou Python requests, ce qui est pratique quand vous voulez rejouer une requête dans un script. Et bien sûr la possibilité de mettre la capture en pause pour analyser tranquillement ce qui s’est passé.
Voilà, c’est minimaliste mais ça marche hyper bien et quand on est pas un pro de la sécurité, c’est bien d’avoir des outils de ce style pour explorer un truc vite fait. Et merci à Lorenper pour le partage !
Article qui détaille comment utiliser le header HTTP Cache-Control pour mettre en cache les ressources qui peuvent l'être, tout en gérant finement la façon dont elles seront rafraîchies une fois le cache expiré.
Article qui détaille comment utiliser le header HTTP Cache-Control pour mettre en cache les ressources qui peuvent l'être, tout en gérant finement la façon dont elles seront rafraîchies une fois le cache expiré.
Un client HTTP construit comme un wrapper autour du fetch() natif de JavaScript, qui ajoute des fonctionnalités telles que retry, timeout, circuit-breaker, lifecycle hooks, etc.
Un client HTTP construit comme un wrapper autour du fetch() natif de JavaScript, qui ajoute des fonctionnalités telles que retry, timeout, circuit-breaker, lifecycle hooks, etc.