566 votes

Utilisation de cURL avec un nom d'utilisateur et un mot de passe ?

Je veux accéder à une URL qui nécessite un nom d'utilisateur / mot de passe. J'aimerais essayer d'y accéder avec curl. En ce moment, je fais quelque chose comme :

curl http://api.somesite.com/test/blah?something=123

Je reçois une erreur. Je suppose que je dois spécifier un nom d'utilisateur et un mot de passe avec la commande ci-dessus.

Comment puis-je faire cela ?

18voto

Touseef Murtaza Points 106

Le plus souvent, la commande CURL est désignée sous le nom de

curl https://example.com\?param\=ParamValue -u NOM_UTILISATEUR:MOT_DE_PASSE

Si vous n'avez pas de mot de passe ou si vous souhaitez sauter l'invite de commande pour demander un mot de passe, laissez simplement la section du mot de passe vide.

par exemple curl https://example.com\?param\=ParamValue -u NOM_UTILISATEUR:

2 votes

NOTE: Le mot de passe serait visible dans l'historique de la shell et dans la liste des processus.

13voto

user128364 Points 874
curl -X GET -u nom_utilisateur:mot_de_passe {{ http://www.example.com/nom_fichier.txt }} -O

2 votes

NOTE: Le mot de passe serait visible dans l'historique de la coquille et la liste des processus.

11voto

Preyas Points 215

Assez facile, faites ce qui suit :

curl -X GET/POST/PUT  -u nom_utilisateur:mot_de_passe

0 votes

Il n'y a pas d'exigence de sécurité sur la question

2 votes

NOTE : Le mot de passe serait visible dans l'historique de la console et la liste des processus

10voto

Brian Davis Points 63

D'autres réponses ont suggéré netrc pour spécifier le nom d'utilisateur et le mot de passe, d'après ce que j'ai lu, je suis d'accord. Voici quelques détails de syntaxe :

https://ec.haxx.se/usingcurl-netrc.html

Comme d'autres réponses, j'aimerais insister sur la nécessité de prêter attention à la sécurité concernant cette question.

Bien que je ne sois pas un expert, j'ai trouvé ces liens instructifs :

https://ec.haxx.se/cmdline-passwords.html

Pour résumer :

L'utilisation des versions chiffrées des protocoles (HTTPS vs HTTP) (FTPS vs FTP) peut aider à éviter les fuites réseau.

L'utilisation de netrc peut aider à éviter les fuites de ligne de commande.

Pour aller plus loin, il semble que vous puissiez également chiffrer les fichiers netrc en utilisant gpg

https://brandur.org/fragments/gpg-curl

Avec cela, vos informations d'identification ne sont pas "au repos" (stockées) en texte clair.

8voto

sjas Points 3175

Pour ne pas laisser le mot de passe apparaître dans votre .bash_history :

curl -u user:$(cat .password-file) http://example-domain.tld

6 votes

Dans ce cas, le mot de passe se retrouvera toujours dans la liste des processus, par exemple, il est visible pour quelqu'un exécutant ps auxw | grep curl au bon moment. De même, le mot de passe sera enregistré s'il est exécuté via sudo

1 votes

Avec cette méthode, le mot de passe est ensuite présent dans un fichier (.password-file) qui peut être plus sécurisé que l'historique .bash. La bonne partie à ce sujet, c'est que ce n'est que le mot de passe - l'URL et le nom d'utilisateur ne sont pas divulgués dans le fichier .password.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X