J'ai quelques outils BASH qui utilisent la mysql -e "{command}"
fonction. Entrer le mot de passe chaque fois que j'utilise ces outils serait une douleur, donc, pour éviter d'avoir le mot de passe écrit dans un fichier en clair avec le code, je le stocke en mémoire (en utilisant read -s
) et demande à BASH de le lire chaque fois qu'il exécute les commandes.
Mysql pense toujours que le mot de passe est soumis via la ligne de commande (parce que, en quelque sorte, il l'est), et me donne toujours l'erreur "L'utilisation d'un mot de passe sur l'interface de ligne de commande peut être peu sûre."
Pour mes besoins, je n'ai pas besoin de supprimer ce message. Ce que j'ai besoin de savoir, qu'est-ce qui pourrait le rendre précaire? Le mot de passe n'est jamais physiquement visible, donc le surf sur l'épaule ne pouvait pas le faire et même quelqu'un qui a deviné mon mot de passe SSH ne pourrait pas le faire car il est stocké dans la mémoire plutôt que dans les scripts eux-mêmes. Une attaque de l'homme du milieu ou quelque chose de similaire est-elle possible?
~/.my.cnf
exemple Vous pouvez spécifier par hôte en faisant par[client<hostname>]
exemple, les[clientlocalhost]
outils MySQL l'utiliseront automatiquement afin qu'il soit plus facile et plus sûrbash
lu lorsque vous exécutez la commande? Si vous le faites,mysql -p"$pass"
n'importe qui peut le voirps
.Réponses:
Quiconque peut voir vos variables d'environnement (y compris les programmes que vous exécutez) peut voir le mot de passe. Et toute personne qui peut visualiser vos processus peut voir la ligne de commande utilisée pour les exécuter, y compris les paramètres.
Donc, pour une boîte à laquelle vous vous connectez uniquement, le risque est probablement insignifiant. Mais pour une attaque ciblée contre vous personnellement, il s'agit d'un vecteur d'attaque trivial dans le grand schéma des choses.
la source
~/.history
, etc.