← Tous les articles

FourA Digest - Du 8 au 15 mai 2026

Le tableau de bord dispose désormais d'un véritable bac à sable de requêtes pour composer vos appels API, et `unblocker: true` fonctionne de nouveau de bout en bout sur Single et Proxy Finder.

Points clés

Vous pouvez désormais composer, envoyer et rejouer des requêtes avec votre propre clé API directement depuis le tableau de bord. Le nouveau playground couvre les trois produits et conserve les cookies, les préréglages et l'historique entre les exécutions. Deux correctifs de fiabilité ont été déployés en parallèle : unblocker: true se dégradait silencieusement depuis plusieurs semaines (il fonctionne de nouveau, de bout en bout), et Browser capture désormais le cookie de défi passif cf_clearance de Cloudflare de manière fiable.

Nouveautés

Le Playground du tableau de bord

/dashboard/#playground est désormais un véritable banc de test. Trois onglets de produits (Single, Proxy Finder, Browser), une barre d'URL, des en-têtes, un corps, tous les paramètres propres à chaque produit exposés et alignés sur le schéma réel de chacun. Envoyez la requête, observez le rendu de la réponse avec les modes d'affichage JSON, HTML et texte. Effectuez des recherches dans les volets de réponse avec Ctrl/Cmd+K. Affichez la réponse en plein écran lorsque vous devez lire un bloc volumineux de HTML.

Voici quelques éléments nés de notre volonté de concevoir cet outil tel que nous aimerions l'utiliser nous-mêmes :

  • Les cookies reçus sont enregistrés dans un conteneur dédié par hôte. La requête suivante vers le même hôte les joint automatiquement, et vous pouvez inspecter, modifier ou supprimer n'importe quel cookie avant l'envoi.
  • Un panneau dédié aux proxys fonctionnels rassemble chaque identifiant de proxy renvoyé par une exécution réussie de Proxy Finder, ce qui vous permet de cliquer sur "use" et de réutiliser ce proxy dans une requête Single ou Browser sans avoir à le ressaisir.
  • Enregistrez les requêtes en tant que préréglages. Rejouez n'importe laquelle de vos 20 dernières exécutions depuis la fenêtre d'historique.
  • Un outil de reproduction curl affiche la commande exacte (avec x-api-key) que vous exécuteriez dans un terminal pour envoyer la même requête.

Le playground signe un token interne de courte durée, de sorte que votre clé en texte brut ne quitte jamais le tableau de bord. Le quota, les métriques et last_used_at sont imputés à la clé choisie, exactement comme si vous aviez envoyé la requête depuis votre propre code.

unblocker: true fonctionne de nouveau, de bout en bout

Nous avons détecté un problème de build qui dégradait silencieusement les requêtes Single et Proxy Finder avec unblocker: true au cours des dernières semaines. La version a été déployée sans que le profil de navigateur ne soit réellement connecté, de sorte que les requêtes qui auraient dû porter une signature de navigateur recevaient une signature de requête générique. Les sites qui auraient dû nous laisser passer bloquaient nos requêtes.

Le correctif est déployé. Nous l'avons validé de bout en bout sur onze cibles réelles, dont trois derrière des pages de vérification qui nécessitaient auparavant Browser. Single les franchit désormais de manière autonome. Le flux chaîné Proxy Finder + Browser + Single (trouver un proxy, obtenir un cookie cf_clearance depuis Browser, envoyer la requête de la page avec Single en incluant le cookie et le même proxy) renvoie le HTML complet en un seul aller-retour.

Cette erreur est de notre responsabilité. unblocker: true fonctionnait le jour de son déploiement, et s'est interrompu discrètement lors d'une reconstruction de routine. Si vous avez exécuté une requête avec unblocker: true sur un site protégé au cours des dernières semaines et obtenu un 403 au lieu du 200 attendu, vous en connaissez la cause. Réessayez.

Browser prend en charge le défi passif JavaScript de Cloudflare

Cloudflare dispose de deux modes de challenge. Le mode actif (HTTP 403 et interstitiel) était déjà pris en charge. Le mode passif est plus discret : la page renvoie immédiatement un code 200, mais Cloudflare injecte une sonde JavaScript asynchrone qui effectue l'empreinte du client et délivre seulement ensuite le cookie cf_clearance. Avant ce correctif, Browser finalisait la response avant la fin de la sonde, ce qui empêchait l'enregistrement du cookie d'autorisation dans le jar.

Désormais, Browser écoute explicitement l'événement Set-Cookie et attend cf_clearance s'il détecte le marqueur de challenge passif dans le body. Aucun polling, aucun délai de grâce fixe, aucune attente superflue pour les sites non-Cloudflare. Douze domaines réels de la suite de tests, dont trois utilisant le chemin passif, renvoient désormais les cookies d'autorisation de manière fiable.

Comblement d'une faille SSRF au niveau de l'edge de l'API

Une clé API pk_live_... valide ne donne pas l'autorisation d'accéder à notre réseau privé. L'API rejette désormais toute cible dont le nom d'hôte littéral ou la résolution DNS aboutit à un bloc réservé RFC 5735, 6598 ou IPv6. La même vérification s'exécute sur chaque produit backend en tant que deuxième ligne de défense.

Vous ne remarquerez aucun changement en surface. Nous bloquons une catégorie de sondes de réseau interne avant même qu'elles n'établissent une négociation TCP.

Aperçus sociaux uniques pour le blog, pagination corrigée

Chaque article de blog génère désormais sa propre image Open Graph, avec le titre de l'article et l'extrait intégrés sur une carte de marque. Collez un lien foura.ai/blog/... dans Discord, LinkedIn, Slack ou Twitter et vous verrez l'aperçu spécifique à l'article au lieu d'un visuel générique par défaut.

La pagination sur l'index du blog présentait un dysfonctionnement discret. Le bouton "Older" vous renvoyait sur la page 1. Nous l'avons reconstruite sur des URL basées sur le chemin (/blog/page/N/), nous avons ajouté une navigation numérotée avec une fenêtre dynamique, et nous avons intégré les balises de lien rel=prev/next appropriées pour les séries paginées. Les anciennes URL ?page=N effectuent une redirection 301 vers le nouveau format, garantissant qu'aucun contenu exploré auparavant n'est perdu.

Sous le capot

Notre serveur MCP est disponible à l'adresse mcp.foura.ai pour tout outillage LLM compatible avec le Model Context Protocol. L'authentification utilise le même token Bearer pk_live_... que celui utilisé avec l'API REST. Il expose les trois produits sous forme d'outils (Single, Proxy Finder, Browser) ainsi qu'un ensemble de prompts. Si vous intégrez FourA dans Claude Code ou tout agent compatible MCP, vous n'avez plus besoin d'exécuter un pont local.

Si vous hésitiez à utiliser le tableau de bord parce que l'ancien playground n'était qu'une ébauche, découvrez-le cette semaine. C'est l'interface que nous utilisons désormais nous-mêmes lorsqu'une anomalie apparaît sur une cible d'API.