我有一个程序,它几乎每周 7 天、每天 24 小时都在运行。
我有一个用 bash 编写的启动脚本,它只执行以下任务:
./app --user XXX --pass YYY
还有其他一些选项,但与这个问题无关。
一旦运行,通行证将始终显示在附言对于其他用户,我猜其他地方也是如此。我该如何防止这种情况发生?应用程序无法修改,我唯一的选择是以某种方式传递密码时进行修改。
通过脚本启动应用程序也很重要,因为我要在几台机器上自动启动和关闭它。每次都手动输入并不是一个好办法。
然而我不需要它在 Bash 脚本本身中不可读。如果它在那里是纯文本,那就没问题,我只需要在其他地方保护它,以便其他用户能够检查正在运行的进程,例如附言
答案1
安全的解决方案是以命令行选项以外的其他方式传递密码。最常见的两种方式是环境变量或让程序从文件中读取密码。
如果程序尚不支持这些方法,则可能需要对程序本身进行更改。
另一种不太安全的方法(但仍然比现在的方法更好)是让程序将密码从命令行复制到内存中的另一个位置,然后擦除存储命令行的内存位置。
这种方法不太安全,因为它在程序启动时仍会短暂可见。有些程序已经这样做了,但如果程序还没有这样做,则需要修改程序才能做到这一点。