在 Python 源码之外提供代理凭据
把避免凭据进入源码管理,与向必须使用凭据的进程隐藏凭据,区分开来。
从配置中读取代理 URL 可以让密码不出现在源码文件里。当文件被共享或纳入版本管理时,这很有用。但这并不会让使用凭据的进程看不到它。
环境变量、交互式提示和托管的密钥存储提供了不同的传递方式。选择适合脚本运行方式的那一种。定时运行的服务无法回答提示,而手动运行的工具可能不需要持久化的密码文件。
加载之后,要让密钥远离常规诊断输出。打印完整的 proxies 字典可能会抵消把密码移出脚本带来的好处。应改为记录安全的账号或端点标识。
如果运行代码的人控制着进程,那么把打包的密码加密、同时又把解密所需的全部内容一起打包,并不能针对这个人建立起可靠的边界。账号的权限和凭据生命周期必须与这一现实相符。
把目标拆成两个问题:凭据保存在哪里,以及谁被允许使用代理账号。配置变更可以解决前者,而不必自动改变后者。