我使用 Python 和 Django 创建 Web 应用程序,并将其存储在源代码管理中。按照 Django 通常的设置方式,密码在 settings.py 文件中以纯文本形式显示。
以纯文本形式存储我的密码会给我带来许多安全问题,特别是因为这是一个开源项目,我的源代码将受到版本控制(通过 git,在 Github 上,让全世界都可以看到!)
问题是,在 Django/Python 开发环境中安全编写 settings.py 文件的最佳实践是什么?
虽然我在 stackoverflow 上找不到任何特定于 Python 的内容,但我确实找到了一个很有帮助的网站 http://opensourcehacker.com/2012/12/13/configuring-your-python-application-using-environment-variables/,并认为我会与社区其他人分享解决方案。
解决办法:环境变量。
注意:虽然 Linux/Unix/OS X 和 Windows 世界中的环境变量相似,但我尚未在 Windows 计算机上测试此代码。请告诉我是否有效。
在 bash/sh shell 中,输入:
export MYAPP_DB_USER='myapp'
export MYAPP_DB_PASSWORD='testing123'
在你的 Django settings.py 文件中:
DATABASE_USER = os.environ.get("MYAPP_DB_USER", '')
DATABASE_PASSWORD = os.environ.get("MYAPP_DB_PASSWORD", '')
在这种情况下,如果环境变量不存在,则用户名和密码将默认为空字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)