【问题标题】:Secure Way to Store Credentials for an API python module为 API python 模块存储凭证的安全方式
【发布时间】:2020-05-18 02:44:27
【问题描述】:

我正在使用一个名为SpaceTrackTools 的python API 模块。但是,它要求脚本将密码和用户名作为变量存储在脚本中。我想知道是否有更安全的方法来保存详细信息?

谢谢。

【问题讨论】:

标签: python api passwords


【解决方案1】:

您可以使用keyring 将您的用户名和密码存储在脚本之外。命令行界面允许您获取、设置或删除存储的密码。您可以将用户名存储为密码以确保其安全。

$ keyring --help
Usage: keyring [get|set|del] SERVICE USERNAME

Options:
  -h, --help            show this help message and exit
  -p KEYRING_PATH, --keyring-path=KEYRING_PATH
                        Path to the keyring backend
  -b KEYRING_BACKEND, --keyring-backend=KEYRING_BACKEND
                        Name of the keyring backend
  --list-backends       List keyring backends and exit
  --disable             Disable keyring and exit

从命令行设置服务的用户名和密码。

$ keyring set spacetracktools username
Password for 'username' in 'spacetracktools': 
$ keyring set spacetracktools password
Password for 'password' in 'spacetracktools': 
import keyring

# get username and password from keyring
username = keyring.get_password("spacetracktools", "username")
password = keyring.get_password("spacetracktools", "password")

print("My username is:", username)
print("My password is:", password)

【讨论】:

    【解决方案2】:

    一种选择是使用dotenv

    这样您可以将您的私人详细信息保存在一个名为 .env 的单独文件中。

    然后您在运行时读取脚本中的私人详细信息。

    例如:

    文件 .env 值:

    USERNAME=MyUserName
    PASSWORD=Spec!alP@ssw0rd*19?
    

    脚本用法:

    import os  # also need os
    from dotenv import load_dotenv
    
    load_dotenv()  # blank if .env file in same directory as script
    # load_dotenv('<path to file>.env') to point to another location
    USERNAME = os.getenv('USERNAME')
    PASSWORD = os.getenv('PASSWORD')
    
    # your code
    

    【讨论】:

      【解决方案3】:

      要添加到 .env 方法,请确保您设置了 .gitignore 文件,以便 git 不会在 repo 中包含 .env 文件。你可以在 Github gitignore repo here找到一个用于 python 的 .gitignore 文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 2013-01-24
        • 1970-01-01
        • 2014-04-02
        • 2013-05-17
        相关资源
        最近更新 更多