如何从命令行使用MySQL密码不安全?

我有几个使用mysql -e "{command}"函数的BASH工具。 每次使用这些工具时input密码都是一件痛苦的事情,所以为了避免用代码将密码写在纯文本文件中,我将它存储在内存中(使用read -s ),并且每当运行命令。

Mysql仍然认为密码是通过命令行提交的(因为在某种意义上说是这样),并且仍然给我提示错误“在命令行界面上使用密码可能是不安全的”。

为了我的目的,我不需要压制这个信息。 我需要知道的是,这是什么使它不安全? 密码永远不可见,所以肩上冲浪是不可能的,甚至有人猜测我的SSH密码将无法做到这一点,因为它存储在内存中,而不是脚本本身。 是中间人攻击还是类似的东西?

任何人都可以看到你的环境variables(包括你运行的程序)可以看到密码。 任何能够查看进程的人都可以看到用来运行它们的命令行,包括参数。

所以对于一个只有你login的盒子,风险可能是微不足道的。 但是对于你个人的有针对性的攻击,这是在事情的macros伟计划中的一个微不足道的攻击媒介。