コマンドラインからMySQLパスワードを使用するのは安全ではありませんか?


12

このmysql -e "{command}"機能を使用するBASHツールがいくつかあります。これらのツールを使用するたびにパスワードを入力するのは手間がかかるため、パスワードがコードとともにプレーンテキストファイルに書き込まれないように、メモリに(を使用して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
環境変数に関する質問はどこにありますか?シェル変数は、エクスポートしない限り環境に配置されません。
バーマー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.