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

And*_*rew 12 mysql linux

我有一些使用该mysql -e "{command}"功能的BASH 工具。每次使用这些工具时都输入密码会很痛苦,因此,为了避免将密码与代码一起写入纯文本文件中,我将其存储在内存中(使用read -s),并在运行命令时让 BASH 读取它。

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

出于我的目的,我不需要抑制此消息。我需要知道的是,它是什么,可能使它不安全?密码在物理上是不可见的,所以肩膀冲浪无法做到,即使是猜到我的 SSH 密码的人也无法做到,因为它存储在内存中而不是脚本本身中。是否可能进行中间人攻击或类似的攻击?

lon*_*eck 26

任何可以看到您的环境变量(包括您运行的程序)的人都可以看到密码。任何可以查看您的进程的人都可以看到用于运行它们的命令行,包括参数。

因此,对于只有您登录的盒子,风险可能微不足道。但是对于针对您个人的针对性攻击,从宏观上看,这是一个微不足道的攻击向量。

  • 以及有人查看你的 `~/.history` 等 (22认同)