Mam kilka narzędzi BASH, które używają tej mysql -e "{command}"
funkcji. Wprowadzanie hasła za każdym razem, gdy korzystam z tych narzędzi, byłoby uciążliwe, więc aby uniknąć zapisywania hasła w pliku tekstowym z kodem, przechowuję je w pamięci (używam read -s
) i BASH czyta je za każdym razem, gdy uruchamia polecenia.
Mysql nadal uważa, że hasło jest przesyłane za pośrednictwem wiersza poleceń (ponieważ w pewnym sensie tak jest) i nadal wyświetla błąd „Używanie hasła w interfejsie wiersza poleceń może być niepewne”.
Dla moich celów nie muszę ukrywać tej wiadomości. Muszę wiedzieć, co może sprawić, że poczujesz się niepewnie? Hasło nigdy nie jest fizycznie widoczne, więc surfowanie po ramionach nie mogło tego zrobić, a nawet ktoś, kto odgadł moje hasło SSH, nie byłby w stanie tego zrobić, ponieważ jest ono przechowywane w pamięci, a nie w samych skryptach. Czy możliwy jest atak typu man-in-the-middle czy coś podobnego?
~/.my.cnf
przykładzie można określić za gospodarz wykonując[client<hostname>]
np[clientlocalhost]
MySQL narzędzi użyje go automatycznie, dzięki czemu łatwiej i bezpieczniejbash
przeczytałeś po uruchomieniu polecenia? Jeśli to zrobisz,mysql -p"$pass"
każdy może to zobaczyćps
.Odpowiedzi:
Każdy, kto widzi Twoje zmienne środowiskowe (w tym uruchamiane przez Ciebie programy), może zobaczyć hasło. I każdy, kto może przeglądać twoje procesy, może zobaczyć wiersz poleceń użyty do ich uruchomienia, w tym parametry.
Tak więc w przypadku skrzynki, do której logujesz się wyłącznie, ryzyko jest prawdopodobnie niewielkie. Ale w przypadku ukierunkowanego ataku na ciebie jest to trywialny wektor ataku w wielkim schemacie rzeczy.
źródło
~/.history
itp.