pat*_*eza 7 command-line security password
某些应用程序允许将密码作为参数传递。例如:
mysql --user=user_name --password=your_password db_name
Run Code Online (Sandbox Code Playgroud)
安全吗?除了键入的密码会保存在 bash 历史记录中这一事实之外,有人可以w
在适当的时候键入命令,并会看到进程的完整命令行(包括密码)。
令我惊讶的是,每个用户都可以看到我当前正在执行的命令。
Cel*_*ada 15
系统中每个进程的命令行参数都被认为是“公共的”。不仅是w
命令,而且ps
还有top
许多其他命令都可以理所当然地访问该信息。实际上,获取该信息不需要特殊权限。在 Linux 上,您可以通过读取/proc/<pid>/cmdline
.
这不是w
或top
或ps
(或cat
)的缺陷或不安全行为。相反,责任在于永远不要在多用户系统的命令行上传递敏感信息。
大多数能够在命令行文档中接受密码的实用程序不建议这样做。例如,来自mysql
的联机帮助页:
在命令行上指定密码应该被认为是不安全的。请参阅第 5.3.2.2 节,“密码安全的最终用户指南”。您可以使用选项文件来避免在命令行上提供密码。
顺便说一句,在环境变量中传递密码或敏感数据不太明显不安全,但实际上在大多数系统上也是不安全的。
不,在命令行上将密码传递给程序是不安全的。最好使用:
mohsen@debian:~$ mysql -uuser -p
Enter password:
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
779 次 |
最近记录: |