Faits marquants
Vous pouvez désormais composer, envoyer et rejouer des requêtes avec votre propre clé API directement dans le tableau de bord. Le nouveau bac à sable couvre les trois produits et conserve les cookies, les préréglages et l'historique entre les exécutions. Deux correctifs de fiabilité l'accompagnent : unblocker: true se dégradait silencieusement depuis plusieurs semaines (il fonctionne à nouveau de bout en bout), et Browser capture désormais le cookie cf_clearance du défi passif de Cloudflare de manière fiable.
Nouveautés
Le bac à sable du tableau de bord
/dashboard/#playground est désormais un véritable espace de travail. Trois onglets de produits (Single, Proxy Finder, Browser), une barre d'URL, des en-têtes, un corps, tous les indicateurs par produit exposés et adaptés au schéma réel de chaque produit. Envoyez la requête, regardez la réponse s'afficher avec les modes de vue JSON, HTML et texte. Recherchez dans les panneaux de réponse avec Ctrl/Cmd+K. Étendez la réponse sur tout l'écran lorsque vous avez besoin de lire un mur de HTML.
Quelques éléments issus de sa conception, tels que nous aimerions l'utiliser nous-mêmes :
- Les cookies que vous recevez sont enregistrés dans un conteneur par hôte. La requête suivante vers le même hôte les attache automatiquement, et vous pouvez inspecter, modifier ou supprimer n'importe quel cookie avant l'envoi.
- Un panneau de proxys fonctionnels collecte chaque identifiant de proxy renvoyé par une exécution réussie de Proxy Finder, afin que vous puissiez cliquer sur "utiliser" et réutiliser ce proxy dans une requête Single ou Browser sans avoir à le retaper.
- Enregistrez les requêtes comme préréglages. Rejouez n'importe laquelle de vos 20 dernières exécutions depuis la boîte de dialogue d'historique.
- Un reproducteur curl affiche la commande exacte (avec
x-api-key) que vous exécuteriez depuis un terminal pour envoyer la même requête.
Le bac à sable signe un token interne à courte durée de vie, de sorte que votre clé en texte clair ne quitte jamais le tableau de bord. Les quotas, les métriques et last_used_at sont comptabilisés sur la clé que vous avez choisie, de la même manière que si vous aviez envoyé la requête depuis votre propre code.
unblocker: true fonctionne à nouveau, de bout en bout
Nous avons repéré un problème de compilation 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 contournement ne soit réellement intégré, de sorte que les requêtes qui auraient dû franchir les murs anti-bot au niveau du handshake recevaient à la place une signature de requête générique. Les sites qui auraient dû nous laisser passer nous bloquaient.
Le correctif est déployé. Nous l'avons vérifié de bout en bout sur onze cibles réelles, y compris trois sur des pages interstitielles Cloudflare qui nécessitaient auparavant Browser pour passer. Single les franchit par lui-même. Le flux enchaîné Proxy Finder + Browser + Single (trouver un proxy, obtenir un cookie cf_clearance avec Browser, envoyer la requête de page avec Single, le cookie et le même proxy) renvoie le HTML complet en un seul aller-retour.
Celle-ci est de notre faute. unblocker: true a fonctionné le jour de sa sortie, et s'est rompu silencieusement lors d'une reconstruction de routine. Si vous avez exécuté une requête avec unblocker: true vers un site protégé au cours des dernières semaines et que vous avez obtenu un 403 alors que vous attendiez un 200, c'est pour cette raison. Réessayez.
Browser gère le défi JavaScript passif de Cloudflare
Cloudflare propose deux modes de défi. Le mode actif (HTTP 403 plus page interstitielle) que nous gérions déjà. Le mode passif est plus sournois : la page renvoie 200 immédiatement, mais Cloudflare injecte une sonde JavaScript asynchrone qui prend l'empreinte du client et n'émet qu'ensuite le cookie cf_clearance. Avant ce correctif, Browser finalisait la réponse avant que la sonde ne puisse se terminer, de sorte que le cookie d'autorisation n'arrivait jamais dans le conteneur.
Browser écoute désormais explicitement l'événement Set-Cookie et attend cf_clearance s'il détecte le marqueur de défi passif dans le corps. Pas de scrutation, pas de délai de grâce fixe, pas d'attente supplémentaire pour les sites qui n'utilisent pas Cloudflare. Douze domaines réels de la suite de tests, dont trois sur le chemin passif, renvoient désormais les cookies d'autorisation de manière fiable.
Comblement d'une faille SSRF à la périphérie de l'API
Une clé API pk_live_... valide n'est pas une licence pour 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 dans un bloc réservé RFC 5735, 6598 ou IPv6. La même vérification est effectuée sur chaque produit backend comme deuxième ligne de défense.
Vous ne verrez rien de différent en surface. Nous bloquons un type de sonde de réseau interne avant qu'elle ne puisse terminer un handshake TCP.
Le blog se dote d'aperçus sociaux uniques, la pagination est corrigée
Chaque article de blog génère désormais sa propre image Open Graph, avec le titre et l'extrait de l'article affichés sur une carte de la 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'une image générique de secours.
La pagination sur l'index du blog était silencieusement défectueuse. Le bouton "Plus anciens" vous renvoyait à la page 1. Nous l'avons reconstruite sur des URL basées sur le chemin (/blog/page/N/), ajouté une navigation numérotée avec une fenêtre intelligente, et ajouté 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 la nouvelle forme, de sorte que rien de ce qui a été exploré avant cela n'est perdu.
Sous le capot
Notre serveur MCP est en ligne sur mcp.foura.ai pour tout outil LLM qui utilise le Model Context Protocol. L'authentification utilise le même token Bearer pk_live_... que celui que vous utilisez pour l'API REST. Il expose les trois produits comme outils (Single, Proxy Finder, Browser) et quelques prompts. Si vous intégrez FourA à Claude Code ou à n'importe quel agent compatible MCP, vous pouvez arrêter d'exécuter un pont local.
Si vous avez laissé le tableau de bord de côté parce que le précédent bac à sable n'était qu'une ébauche, ouvrez-le cette semaine. C'est l'interface que nous utilisons désormais nous-mêmes lorsque quelque chose semble anormal par rapport à une cible d'API.