我在谷歌上搜索了几次,并查阅了文档(https://docs.djangoproject.com/en/dev/ref/settings/#secret-key),但我在寻找关于这一点的更深入的解释,以及为什么需要这样做.

例如,如果密钥被泄露/其他人知道它是什么,会发生什么?

推荐答案

它是用来做散列的.看:

>grep -Inr SECRET_KEY *
conf/global_settings.py:255:SECRET_KEY = ''
conf/project_template/settings.py:61:SECRET_KEY = ''
contrib/auth/tokens.py:54:        hash = sha_constructor(settings.SECRET_KEY + unicode(user.id) +
contrib/comments/forms.py:86:        info = (content_type, object_pk, timestamp, settings.SECRET_KEY)
contrib/formtools/utils.py:15:    order, pickles the result with the SECRET_KEY setting, then takes an md5
contrib/formtools/utils.py:32:    data.append(settings.SECRET_KEY)
contrib/messages/storage/cookie.py:112:        SECRET_KEY, modified to make it unique for the present purpose.
contrib/messages/storage/cookie.py:114:        key = 'django.contrib.messages' + settings.SECRET_KEY
contrib/sessions/backends/base.py:89:        pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
contrib/sessions/backends/base.py:95:        if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
contrib/sessions/backends/base.py:134:        # Use settings.SECRET_KEY as added salt.
contrib/sessions/backends/base.py:143:                       settings.SECRET_KEY)).hexdigest()
contrib/sessions/models.py:16:        pickled_md5 = md5_constructor(pickled + settings.SECRET_KEY).hexdigest()
contrib/sessions/models.py:59:        if md5_constructor(pickled + settings.SECRET_KEY).hexdigest() != tamper_check:
core/management/commands/startproject.py:32:        # Create a random SECRET_KEY hash, and put it in the main settings.
core/management/commands/startproject.py:37:        settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents)
middleware/csrf.py:38:                % (randrange(0, _MAX_CSRF_KEY), settings.SECRET_KEY)).hexdigest()
middleware/csrf.py:41:    return md5_constructor(settings.SECRET_KEY + session_id).hexdigest()

Python相关问答推荐

取相框中一列的第二位数字

除了Python之外,可以替代bare?

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

如何终止带有队列的Python进程?+ 队列大小的错误?

通过交换 node 对链接列表进行 Select 排序

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

三个给定的坐标可以是矩形的点吗

具有多个选项的计数_匹配

如果条件为真,则Groupby.mean()

如何使用pandasDataFrames和scipy高度优化相关性计算

2D空间中的反旋算法

什么相当于pytorch中的numpy累积ufunc

Python+线程\TrocessPoolExecutor

使用NeuralProphet绘制置信区间时出错

在单个对象中解析多个Python数据帧

删除marplotlib条形图上的底边

合并帧,但不按合并键排序

启动带有参数的Python NTFS会导致文件路径混乱

从Windows Python脚本在WSL上运行Linux应用程序

判断solve_ivp中的事件