python - Django 密钥泄露
问题描述
我想知道如果生产密钥被泄露,需要采取哪些步骤。幸运的是,情况并非如此,但很高兴知道,尽管如此。
特别是,如果简单地将旧密钥交换为新生成的密钥会发生什么?既然是用来做散列的,它会破坏整个系统还是让它变得不稳定?
在妥协的情况下,响应是否会像生成新密钥并将其插入生产设置一样简单?
解决方案
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 中。
推荐阅读
- python - Python:如何遍历两个列表,一个用于键,一个用于值,并将其放入一个新的空字典中?
- javascript - Sequelize - 根据特定属性包含
- applescript - 如何与applescript中的“消息”进行交互
- api - 如何将此代码从 PHP 转换为在 PYTHON urllib 中使用?有标题和正文吗?我的意思是,文档说通过正文发送参数
- google-cloud-platform - 两个 GOOGLE_APPLICATION_CREDENTIALS 文件
- php - 流明日志创建为 apache:apache。我什至没有运行 apache
- ruby-on-rails - Rails 'link_to' 在某些邮件客户端中无法用于帐户确认
- node.js - YouTube Data v3 API - 如何从频道请求所有视频?
- python - 在与 ID 关联的单个列中查找所有 2 个部分排列
- c# - Azure 移动应用服务器在 GET 上不返回 DBGeography