Convertisseur cURL

Étape 1 / 4Convertisseur cURL

Coller une commande cURL

Maximum : 256 Kio, 4 096 jetons de shell, 200 en-têtes et 128 Kio de corps.

Transformez une commande cURL de type POSIX en code Fetch pour navigateur ou Node.js, Python Requests ou PHP cURL sans lancer la requête. Le convertisseur reconnaît les méthodes courantes, les en-têtes répétés, les corps intégrés, les champs encodés pour les URL, l’authentification de base, les cookies, les champs multipart texte, les redirections et la compression. Il bloque les options de lecture de fichiers, de certificat, de proxy et de sortie, puis affiche précisément les éléments analysés avant de générer le code. Les commandes jusqu’à 256 Kio restent dans votre navigateur.

Fonctionnement

  1. 1

    Collez la commande

    Ajoutez une seule commande cURL de type POSIX. Les guillemets du shell et les continuations de ligne échappées sont analysés localement, sans exécution.

  2. 2

    Vérifiez la requête

    Contrôlez l'URL, la méthode, les en-têtes, le corps, les champs de formulaire, les avertissements et les options bloquées.

  3. 3

    Choisissez une cible

    Générez du code Fetch pour navigateur ou Node.js, Python Requests ou PHP cURL, puis copiez-le ou téléchargez-le.

Ce que le convertisseur conserve

L’analyseur applique les règles courantes de citation du shell POSIX à une seule commande cURL. Il prend en charge -X/--request, les options répétées -H/--header, -d/--data/--data-raw, --data-urlencode, -u/--user, -b/--cookie, les champs texte -F/--form, -L et --compressed. Les continuations de ligne échappées sont réunies avant la segmentation. La page de manuel officielle de cURL précise que les options d’en-tête et de formulaire peuvent être répétées ; le convertisseur conserve leur ordre et signale les bibliothèques cibles susceptibles de fusionner les noms en double.

Entrée cURL Équivalent généré Limite importante
-H 'Name: value' Collection d’en-têtes de la cible Les noms en double peuvent être fusionnés
-d 'a=1' Corps texte de la requête Plusieurs valeurs sont reliées par &
--data-urlencode 'q=a b' Corps texte encodé en pourcentage Les variantes fondées sur des fichiers sont bloquées
-F 'name=value' Champ multipart texte @file et <file sont bloqués
-L Option de suivi des redirections La sécurité des redirections dépend toujours de l’environnement d’exécution

Fetch dans le navigateur ne peut pas définir certains en-têtes de requête interdits, notamment Cookie. Lorsqu’une chaîne de cookies est présente, le code navigateur utilise credentials: "include" et avertit qu’il ne s’agit pas d’un remplacement exact. MDN présente Fetch comme l’interface du navigateur destinée aux requêtes réseau. Le code généré constitue seulement un point de départ : les règles CORS, les identifiants, les redirections et la politique du serveur continuent de s’appliquer.

Limites de sécurité

Le convertisseur n’exécute jamais la commande et ne contacte pas son URL. Les options qui lisent ou téléversent des fichiers locaux, sélectionnent des certificats clients, configurent des proxys, résolvent spécialement des hôtes ou écrivent la sortie du transfert sont bloquées. Cela comprend les valeurs de corps ou d’en-tête @file, --upload-file, les options de certificat et de clé, les options de proxy ainsi que les options de sortie, de configuration et de trace. Les options non prises en charge ou inconnues sont bloquées plutôt qu’interprétées au hasard.

Le code généré peut néanmoins contenir des secrets. Vérifiez les valeurs d’authentification de base, les cookies et les en-têtes d’autorisation avant de l’enregistrer ou de le partager. Pour Python, la sortie suit les conventions de l’API Requests relatives aux méthodes, en-têtes, identifiants et délais d’attente. La sortie PHP utilise curl_setopt_array ; le manuel PHP explique que chaque valeur CURLOPT_* configure le gestionnaire de transfert.

Confidentialité et limites

L’analyse et la génération ont lieu dans Alpine, au sein de ce navigateur. La commande, la requête analysée et le code ne deviennent jamais des propriétés du serveur et ne sont jamais placés dans l’URL du parcours. Pendant les quatre étapes, la commande et la cible choisie sont conservées au maximum deux heures dans IndexedDB, uniquement pour cet onglet ; recommencer efface l’enregistrement. Les plafonds de 4 096 jetons, 200 en-têtes et 128 Kio de corps empêchent une analyse sans limite. L’outil accepte une seule URL HTTP ou HTTPS et n’émule ni un shell complet ni toutes les options cURL.

Questions fréquentes

Non. Il segmente et traduit le texte localement. Il n’envoie jamais la requête, ne résout pas l’hôte, n’ouvre pas de proxy et ne lit aucun fichier référencé.

Les options de fichier, certificat, proxy, résolution personnalisée, sortie et trace peuvent franchir la limite sûre du texte seul. Le convertisseur les bloque plutôt que de prétendre que le code généré est équivalent.

Le JavaScript du navigateur ne peut pas définir directement l’en-tête Cookie. Le code navigateur utilise credentials: include, qui envoie les cookies déjà détenus pour une requête autorisée sur le même site ou par CORS.

Non. Les commandes restent dans la mémoire du navigateur et dans IndexedDB temporaire pendant le parcours. Le code généré peut toutefois contenir les mêmes secrets : supprimez-les avant de le partager ou de le valider dans un dépôt.

Outils similaires

Outil disponible dans d’autres langues