可以在 Django 设置中将 SECRET_KEY 设置为 get_random_secret_key() 吗?

问题描述 投票:0回答:2

我想知道是否可以在 Django 应用程序中生成随机密钥并将其分配给

SECRET_KEY
变量,而不是从环境变量中读取它。例如

# settings.py

from django.core.management.utils import get_random_secret_key

SECRET_KEY = get_random_secret_key()

这是推荐的还是不好的做法?

python django django-rest-framework
2个回答
3
投票

这会在每次加载设置时调用

get_random_secret_key()
,因此每次都会设置不同的
SECRET_KEY
,这不好。 来自文档

密钥用于:

如果您轮换密钥,以上所有内容都将失效。 秘密密钥不用于用户的密码,并且密钥轮换将 不影响他们。


0
投票

密钥提供加密签名,如果您轮换密钥,则以下所有内容都将失效(用户密码除外),因此在每个请求中生成它们是一个不好的做法。

  • 所有会话(如果您使用除 django.contrib.sessions.backends.cache,或者使用默认值 get_session_auth_hash()。
  • 如果您使用 CookieStorage,则所有消息 或备用存储。
  • 所有PasswordResetView令牌。任何使用 加密签名,除非提供不同的密钥。
© www.soinside.com 2019 - 2024. All rights reserved.