在命令行中隐藏密码字段

时间:2019-04-19 19:03:44

标签: c security unix freebsd

我正在FreeBSD上编写系统服务,我需要获取用户凭据来验证身份,诸如此类:

./compression_bin -i <input_file> --type=<type> --password=<secret key>

在这里,密钥用于在压缩给定文件之前对用户进行身份验证。当前,秘密密钥显示在历史记录中,这是不好的并且可以被利用。有没有一种方法可以在不显示密码字段的情况下调用以上内容:

./compression_bin -i <input_file> --type=<type> --password=*********

1 个答案:

答案 0 :(得分:4)

历史记录将始终记录发出的命令文本。可以想象,您可以返回并修改历史记录文件,但不仅如此,它还提供了一个窗口,您可以在其中读取密码。

此外,这甚至不是最简单的利用。如果在命令行上输入了密码,那么在命令运行时可以通过其他方式读取它,例如从ps命令的输出中读取该密码,所有用户都可以访问。

因此,请勿将密码用作命令行参数。从文件,标准输入,套接字或其他一些东西中读取它。