从命令行将敏感信息作为参数传递给脚本有多安全?例如,我有一个 Python 脚本,我要将用户名和密码作为参数传递。
python collect.py --username <username> --password <password>
上面的例子安全吗?在处理敏感的命令行参数时,最好的设计模式是什么?
答案 0 :(得分:3)
您可以使用 getpass()
模块中的 getpass
:
from getpass import getpass
password = getpass("Password: ")
这将提示输入,但是当您输入内容时,它不会显示在命令行中。这很好,因为您的输入在命令历史记录中不可见。要回答您的问题,您的解决方案的缺点是整个命令将在命令历史记录中可见。
请注意,使用 getpass()
,您的程序将在您启动后提示输入密码,而不是在开始时将其作为 --password
旁边的参数传递。