【发布时间】:2019-09-10 00:08:24
【问题描述】:
我正在 FreeBSD 上编写一个系统服务,我需要获取用户凭据来验证身份,如下所示:
./compression_bin -i <input_file> --type=<type> --password=<secret key>
在这里,密钥用于在压缩给定文件之前对用户进行身份验证。目前,密钥出现在历史记录中,这是不好的并且可以被利用。有没有一种方法可以在不显示密码字段的情况下调用上述内容:
./compression_bin -i <input_file> --type=<type> --password=*********
【问题讨论】:
-
如果你正在编写这个程序,让它从文件中读取密码并像
./compression_bin -i <input_file> --type=<type> --passwordfile=some_file一样调用它,或者实现一个从stdin或/dev/tty读取密码的选项。跨度> -
这是一场失败的战斗。在进程初始化和您可以替换任何攻击者可以获取该密码的字符之间总会有一小段时间。 MySQL 曾经以这种方式进行命令行身份验证,但现在如果你这样做,你会收到一个关于它不安全的BIG WARNING。使用密码文件。不要把它当作论据。
-
这不仅仅是历史。 它也用“ps”表示! 正如Bodo所说:使用文件。替代解决方案:使用标准输入。