python - 通过 .ENV 在 SETTINGS.PY 中自动创建 SECRET_KEY
问题描述
在我的研究中,我SECRET_KEY
每次启动项目时都会生成我的。为此,我使用变量 in.env
和eval
函数 in settings.py
。这些文件如下所示:
.env
SECRET_KEY_VALUE_ENV = secrets.token_hex(100)
settings.py
import secrets
SECRET_KEY = eval(os.environ.get('SECRET_KEY_VALUE_ENV'))
生成SECRET_KEY
这种方式有什么问题吗?
解决方案
不要eval()
对您无法完全控制的值使用危险函数。反正
你不需要。eval()
如果另一个程序或脚本设法SECRET_KEY_VALUE_ENV
在您的环境中设置 的值,您将在您的机器上进行远程代码执行。
刮掉eval()
并改用它:
SECRET_KEY = os.environ.get('SECRET_KEY_VALUE_ENV')
生成的更好方法SECRET_KEY
是简单地:
from django.core.management.utils import get_random_secret_key
SECRET_KEY_VALUE_ENV = get_random_secret_key()
推荐阅读
- javascript - 在“单击”上在表格行上传单个文件而不是多次上传
- tcl - TclOO 对象可以在解释器之间共享/别名吗?
- c# - 如何同时与单个数据库建立多个 OleDb 连接
- javascript - 数据抓取帮助 html 和 javascript
- javascript - 为什么不在全局范围内定义每个变量
- node.js - Firebase - cloud firestore - 单元测试失败并出现错误 - TypeError:“路径”参数必须是字符串类型
- sql-server - 如何使用 SQL Server 中特定列的数据并将其分配给 Python 中的变量
- python - 我如何在三个值中找到最小值
- node.js - 如何使 npm start 在克隆的 React 存储库上工作?
- javascript - 使用页面上的专用按钮复制的文本包含很多空格