netrc/.netrc alternative à cURL

j'ai regardé git et cURL et j'ai trouvé des références à ce sujet .netrc, qui peut aider sur l'authentification HTTP. Le problème, c'est: .netrc est stupide, parce qu'il stocke les mots de passe en format texte simple, qui est un grand problème de sécurité pour la solution que je développe.

Est-il une alternative à la .approche netrc? Est-il possible de développer un "backend d'authentification" à cURL?

9
demandé sur Peter Mortensen 2011-03-04 15:23:47

1 réponses

mise à jour avril 2013, git 1.8.3 :

Un nouvelle lecture seule identification d'assistance (dans contrib/ ) pour interagir avec le "151930920 de fichiers" a été ajouté.

ce script vous permettrait de utiliser des fichiers netrc cryptés gpg , en évitant la question d'avoir vos informations d'identification stockées dans un fichier texte simple.

pour activer ce helper credential:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(notez que Git préparera " git-credential- " au nom de l'assistant et le cherchera) dans le chemin.)

voir un exemple complet à " y a-t-il un moyen de ne pas taper de mot de passe en utilisant https:// github "


Réponse originale (mars 2011)

La seule alternative (sauf de ne pas l'utiliser et en passant par ssh):

  • chiffrez ce fichier (par exemple, sur Windows, avec l'utilitaire ' crypt ')
  • décryptez-le juste avant l'appel curl
  • puis le chiffrer à nouveau juste après l'appel curl

Notez que sur Unix, ce fichier est normalement en mode 600, seulement visible par vous.

Sur Windows ( _netrc ), ce fichier doit être dans votre HOMEDIR , qui ne doit pas être accessible (via Windows ACL) à d'autres utilisateurs.

Mais je ne l'aime toujours pas un mot de passe en texte clair...

ce fil , par exemple, passe par le même processus (sur Unix pour gpg, mais il illustre encore la solution nicely):

ci-dessous, j'ai inclus un exemple de script mettant en œuvre l'utilisation de gpg ", qui peut être utilisé pour chiffrer le contenu d'un fichier. C'est dans le script shell, mais je suis sûr que vous pouvez adapter le concept à votre script perl.

je pense que pour vos besoins l'idée de base est:

  1. créez un fichier texte avec votre mot de passe (et d'autres informations)
  2. chiffrez-le utiliser gpg et stocker le fichier crypté; disposer du fichier en clair
  3. dans le script perl, déchiffrez le fichier crypté dans un fichier en clair
  4. lire le contenu du fichier en clair pendant l'exécution de votre script
  5. supprimer le fichier en clair dès que possible.

Voici juste un exemple du fonctionnement de gpg:

#!/bin/sh
echo -n "Enter your password: "
read pass

FILE=~/mypassword
echo $pass > $FILE
gpg -c $FILE
rm -f $FILE

gpg $FILE.gpg
MYPASSWORD=`cat $FILE`
rm -f $FILE

echo $MYPASSWORD
6
répondu VonC 2017-05-23 10:30:31