我犯了一个错误,将我的Django项目的SECRET_KEY提交到了一个公共存储库.

这把 keys 本来应该保密的.

Django项目是实时的,并且已经运行了一段时间,有一些活跃用户.如果我换SECRET_KEY元会有什么影响?是否会有任何现有用户、cookie、会话等.会受到影响吗?显然,新的SECRET_KEY将不再存放在公共场所.

推荐答案

编辑:此答案基于Django 1.5

SECRET_KEY在很多不同的地方使用,我会先指出它的影响,然后再试着看一遍列表,给出准确的影响解释.

直接或间接使用SECRET_KEY的事物 list :

事实上,这里列出的很多项目都使用SECRET_KEYdjango.utils.crypt.get_random_string()来为随机引擎 seeder .这不会受到值SECRET_KEY变化的影响.

直接受价值更改影响的用户体验包括:

  • 会话时,数据解码将中断,这对任何会话后端(cookie、数据库、基于文件或缓存)都有效.
  • 已发送的密码重置令牌将不起作用,用户将不得不请求新的令牌.
  • 注释表(如果使用django.contrib.comments)将不会验证是否在值更改之前请求,以及在值更改之后提交.我认为这很小,但可能会让用户感到困惑.
  • 消息(来自django.contrib.messages)不会在与 comments 表单相同的计时条件下验证服务器端.

UPDATE:现在正在开发Django 1.9.5,快速浏览一下源代码,我会得到大致相同的答案.以后可能会做一次彻底的判断.

Django相关问答推荐

当RST =True时RST CSS

未强制执行枚举值

如何在视图中的 Django 重定向末尾附加字符串?

Django Inline Tabular admin:删除一个不工作的对象

django 的 Manager.create() 方法有什么作用?

超级用户在基于类的视图中进行身份验证

如何使用 matplotlib 在绘图的角落插入小图像?

获取 Django 中的缓存键列表

如何在 django 模板中将名称反转为绝对 url?

如何在 Django 模板上实现 back链接?

目前使用 Django Evolution,South是否更好,值得切换?

用户组和权限

将 XML 从 URL 解析为 python 对象

模型 Django 中的 ID 字段

CherryPy 与 Django

使用 Python / Django 的 Google API 示例的 Oauth

django-object-permissions Vs django-guardian Vs django-authority

Django 默认=timezone.now + delta

如何在不同的元素上添加注释?

Jinja2中的多级模板继承?