首页 > 解决方案 > Django 密钥泄露

问题描述

我想知道如果生产密钥被泄露,需要采取哪些步骤。幸运的是,情况并非如此,但很高兴知道,尽管如此。

特别是,如果简单地将旧密钥交换为新生成的密钥会发生什么?既然是用来做散列的,它会破坏整个系统还是让它变得不稳定?

在妥协的情况下,响应是否会像生成新密钥并将其插入生产设置一样简单?

标签: pythondjangopython-3.x

解决方案


SECRET_KEY用于以下用途:

  • 如果您使用 django.contrib.sessions.backends.cache 以外的任何其他会话后端,或者使用默认的 get_session_auth_hash(),则所有会话。
  • 如果您使用的是 CookieStorage 或 FallbackStorage,则为所有消息。
  • 所有 PasswordResetView 令牌。
  • 加密签名的任何使用,除非提供不同的密钥。

“如果您轮换您的密钥,上述所有内容都将失效。密钥不用于用户密码,密钥轮换不会影响他们。”

您可以使用以下函数生成新密钥:

from django.core.management.utils import get_random_secret_key

print(get_random_secret_key())

只需将打印的结果复制/粘贴到您的 settings.py 中。


推荐阅读