【发布时间】:2021-03-05 13:14:49
【问题描述】:
从命令行将敏感信息作为参数传递给脚本有多安全?例如,我有一个 Python 脚本,我打算将用户名和密码作为参数传递。
python collect.py --username <username> --password <password>
上面的例子安全吗?在处理敏感的命令行参数时,最好的设计模式是什么?
【问题讨论】:
标签: python linux shell security command-line
从命令行将敏感信息作为参数传递给脚本有多安全?例如,我有一个 Python 脚本,我打算将用户名和密码作为参数传递。
python collect.py --username <username> --password <password>
上面的例子安全吗?在处理敏感的命令行参数时,最好的设计模式是什么?
【问题讨论】:
标签: python linux shell security command-line
您可以使用getpass 模块中的getpass():
from getpass import getpass
password = getpass("Password: ")
这将提示输入,但是当您键入内容时,它不会显示在命令行中。这很好,因为您的输入将在命令历史记录中不可见。要回答您的问题,您的解决方案的缺点是整个命令将在命令历史记录中可见。
请注意,使用getpass(),您的程序将在您启动它之后提示您输入密码,而不是在开始时将其作为--password 旁边的参数传递。
【讨论】:
--password 开关,其中包含你的密码,如果你担心它会留在历史记录中。稍后,您可以删除该文件。虽然,使用这种方法,您根本不需要开关。