我有一些使用该mysql -e "{command}"
函数的 BASH 工具。每次使用这些工具时输入密码会很麻烦,因此,为了避免将密码与代码一起写在纯文本文件中,我将密码存储在内存中(使用read -s
),并让 BASH 在运行命令时读取它。
Mysql 仍然认为密码是通过命令行提交的(因为从某种意义上说,确实如此),并且仍然给我错误“在命令行界面上使用密码可能不安全。”
就我的目的而言,我不需要隐藏这条消息。我需要知道的是,可以这会使其不安全吗?密码在物理上永远不可见,因此肩窥无法做到这一点,即使有人猜出了我的 SSH 密码也无法做到这一点,因为它存储在内存中而不是脚本本身中。中间人攻击或类似攻击是否可能?
答案1
任何可以查看您的环境变量(包括您运行的程序)的人都可以看到密码。任何可以查看您的进程的人都可以看到用于运行它们的命令行,包括参数。
因此,对于仅供您登录的盒子来说,风险可能微不足道。但对于针对您个人的攻击,从宏观角度来看,这只是一个微不足道的攻击媒介。