Eu tenho algumas ferramentas BASH que usam a mysql -e "{command}"
função. Inserir a senha toda vez que uso essas ferramentas seria uma dor, portanto, para evitar que a senha seja escrita em um arquivo de texto sem formatação com o código, eu a armazeno na memória (usando read -s
) e o BASH a lê sempre que executa os comandos.
O Mysql ainda pensa que a senha está sendo enviada através da linha de comando (porque, de certa forma, é) e ainda me dá o erro "Usar uma senha na interface da linha de comando pode ser inseguro".
Para meus propósitos, não preciso suprimir esta mensagem. O que eu preciso saber é: o que poderia torná-lo inseguro? A senha nunca é fisicamente visível; portanto, a navegação no ombro não poderia fazê-lo, e mesmo alguém que adivinhou minha senha SSH não seria capaz de fazê-lo, pois ela é armazenada na memória e não nos próprios scripts. É possível um ataque man-in-the-middle ou algo semelhante?
~/.my.cnf
Exemplo Você pode especificar por host, fazendo[client<hostname>]
por exemplo,[clientlocalhost]
MySQL ferramentas irá usá-lo automaticamente assim que é mais fácil e segurobash
leu quando você executa o comando? Se você o fizermysql -p"$pass"
, qualquer um poderá vê-lops
.Respostas:
Qualquer pessoa que possa ver suas variáveis de ambiente (incluindo os programas que você executa) pode ver a senha. E qualquer pessoa que possa visualizar seus processos pode ver a linha de comando usada para executá-los, incluindo os parâmetros.
Portanto, para uma caixa na qual você efetua login, o risco provavelmente é insignificante. Mas para um ataque direcionado a você pessoalmente, esse é um vetor de ataque trivial no grande esquema das coisas.
fonte
~/.history
, etc