Як небезпечно використовувати пароль MySQL з командного рядка?


12

У мене є кілька інструментів BASH, які використовують цю mysql -e "{command}"функцію. Введення пароля щоразу, коли я використовую ці інструменти, буде болем, тому, щоб уникнути запису пароля у файл простого тексту з кодом, я зберігаю його в пам'яті (використовую read -s) і змушую BASH читати його кожного разу, коли він виконує команди.

Mysql все ще вважає, що пароль подається через командний рядок (тому що, таким чином кажучи, він є), і все ще дає мені помилку "Використання пароля в інтерфейсі командного рядка може бути небезпечним".

Для своїх цілей мені не потрібно придушувати це повідомлення. Що я повинен знати, це те, що може зробити це небезпечним? Пароль ніколи не видно фізично, тому серфінг на плечі не міг цього зробити, і навіть той, хто здогадався про мій пароль SSH, не зможе це зробити, оскільки він зберігається в пам'яті, а не в самих скриптах. Чи можливий напад людини середнього чи щось подібне?


8
Помістіть це у ~/.my.cnf прикладі Ви можете вказати на хоста, виконавши, [client<hostname>]наприклад, [clientlocalhost]інструменти MySQL використовуватимуть його автоматично, щоб було простіше та безпечніше
AmazingDreams

Як ви її bashпрочитали під час запуску команди? Якщо ви це зробите, mysql -p"$pass"будь-хто може побачити це ps.
Бармар

Відповіді:


26

Кожен, хто може бачити ваші змінні середовища (включаючи запущені програми), може бачити пароль. І кожен, хто може переглядати ваші процеси, може побачити командний рядок, який використовується для їх запуску, включаючи параметри.

Отже, для вікна, до якого ви лише входите, ризик, ймовірно, незначний. Але для цілеспрямованої атаки на вас особисто, це тривіальний вектор нападу у грандіозній схемі речей.


22
А також хтось переглядає ваші ~/.historyтощо
ivanivan

Не кажучи вже про HTOP та подібні найпопулярніші утиліти, перш ніж вони були замасковані. Багато сценаріїв також не використовували змінні середовища $ PASS тощо, виходячи з того, що користувач читав або не мав дозволів. Для окремого користувача це може здатися не важливим.
mckenzm

1
Де запитання говорить про змінні середовища? Змінні оболонки не розміщуються в середовищі, якщо ви не експортуєте їх.
Бармар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.