【问题标题】:Pass arguments in shell securely [closed]在 shell 中安全地传递参数 [关闭]
【发布时间】:2021-03-05 13:14:49
【问题描述】:

从命令行将敏感信息作为参数传递给脚本有多安全?例如,我有一个 Python 脚本,我打算将用户名和密码作为参数传递。

python collect.py --username <username> --password <password>

上面的例子安全吗?在处理敏感的命令行参数时,最好的设计模式是什么?

【问题讨论】:

    标签: python linux shell security command-line


    【解决方案1】:

    您可以使用getpass 模块中的getpass()

    from getpass import getpass
    
    password = getpass("Password: ")
    

    这将提示输入,但是当您键入内容时,它不会显示在命令行中。这很好,因为您的输入将在命令历史记录中不可见。要回答您的问题,您的解决方案的缺点是整个命令将在命令历史记录中可见。

    请注意,使用getpass(),您的程序将在您启动它之后提示您输入密码,而不是在开始时将其作为--password 旁边的参数传递。

    【讨论】:

    • 感谢您的回复。我知道这个模块。我不想提示,这是问题。
    • 然后你可以将文件路径传递给你的--password 开关,其中包含你的密码,如果你担心它会留在历史记录中。稍后,您可以删除该文件。虽然,使用这种方法,您根本不需要开关。
    猜你喜欢
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多