Un Cloudflare Worker qui résout les chaînes de redirections avec un suivi contrôlé des sauts, des garde-fous de sécurité et des raisons d’arrêt explicites. Le projet est open source sous licence MIT, disponible pour essai sur resolver.jeaurond.dev , et vise à être une version ultra-légère de ce que urlscan.io offre pour l’investigation d’URLs.
Pourquoi ce projet?
Les liens raccourcis, les redirections des réseaux sociaux et le comportement selon le user-agent rendent difficile de savoir où une URL mène réellement. Je voulais un petit résolveur qui suit les redirections manuellement, explique pourquoi il s’arrête et reste sûr à exécuter au edge — sans la lourdeur d’une plateforme de scan complète.
Le tout tourne sur le plan gratuit de Cloudflare Workers , donc n’importe qui peut déployer sa propre instance sans frais. Les requêtes en amont sont émises depuis les IPs de Cloudflare, ce qui est utile lorsqu’on veut voir comment un lien se comporte depuis le edge plutôt que depuis sa propre machine ou une infrastructure de scan dédiée.
Cas d’usage typiques :
- * Déplier les raccourcisseurs d’URL (bit.ly, t.co, …)
- * Déboguer des chaînes de redirections lors d’investigations
- * Retirer les enveloppes d’URL embarquées (Google, Facebook, Telegram, YouTube, …)
- * Comparer les destinations entre user-agents mobile et bureau
Démo en ligne
Le projet inclut une interface web statique qui communique avec le worker déployé. Aucune dépendance CDN externe — polices et coloration syntaxique sont embarquées localement.
L’interface comprend un formulaire de requête, un cURL copiable, une chronologie des sauts de redirection, un historique local des résolutions et une modale JSON complète avec un glossaire des raisons d’arrêt et des règles d’URL embarquées.
API
Le worker expose une API simple en GET / POST. Passez une URL, enchaînez éventuellement des user-agents (ios, android, macos, windows, none) et ajustez des drapeaux comme stop-on-cross-domain, enforce-http-scheme, extract-response-body et debug.
Les réponses incluent l’entrée normalisée, les destinations brutes et extraites, le timing et les en-têtes par saut, une stop_reason, et des métadonnées optionnelles du worker lorsque le mode debug est activé.
Comportement du résolveur
Avant la résolution des sauts, les URLs enveloppe connues sont dépliées récursivement. Les redirections sont suivies sur le même hôte par défaut, avec une exception pour une liste intégrée de domaines de raccourcisseurs. Les redirections inter-domaines deviennent la destination sauf si stop-on-cross-domain=false. Les chaînes de user-agents peuvent réessayer lorsqu’un saut retourne un statut non-redirection, un lien vers un app store sur mobile, ou un en-tête Location hors HTTP(S).
Les contrôles de sécurité intégrés comprennent un nombre maximal de sauts configurable, des délais d’attente par saut en amont, et Cloudflare Access optionnel au edge.
🎩 Accès du logiciel
Cette application est disponible sur🗞 Code source
- Disponible sur
- * GitHub (BenJeau/url-resolver-worker)