不安全的Django版本

4 投票
2 回答
1720 浏览
提问于 2025-04-18 03:30

Django 1.3 及以下版本的文档上写着:

这个文档是针对一个不安全的 Django 版本,这个版本已经不再支持了。请升级到更新的版本!

而且,1.1 版本的文档也没有显示。

  1. 这个版本到底有什么不安全的地方?

  2. 如果有人还在用这些旧版本,会有什么坏处?

  3. 为什么在这个版本发布的时候或者广泛使用的时候,它并不被认为是不安全的呢?

  4. 他们所说的支持是什么意思,是指他们会修复错误吗?

  5. 为什么1.1版本的文档不显示,是因为Django的开发者觉得现在没人再用它了吗?

我得到了很多简短的回答,但都不太令人满意。

2 个回答

4

那些比当前支持版本更旧的版本会被标记为不安全,因为当发现安全漏洞时,它们不会得到修复。支持版本的列表在发布过程中有详细记录,具体可以查看这里:https://docs.djangoproject.com/en/stable/internals/release-process/#supported-versions

安全修复会应用到当前最新版本和之前两个小版本。

截至目前,1.6.x是当前的稳定版本,这意味着安全相关的修复会被移植到1.5.x版本上。1.4.x被认为是长期支持版本,会在2015年3月之前继续收到安全更新。最近的一些安全修复对1.3.x版本没有影响,因为这些问题与1.3.x之后发布的功能有关,比如与密码加密相关的拒绝服务攻击:https://www.djangoproject.com/weblog/2013/sep/15/security/

不过,其他一些安全问题可能会影响到1.3.x项目,但由于根据发布政策它已经不再支持,所以这些问题没有被移植,比如这里提到的安全更新:https://www.djangoproject.com/weblog/2013/sep/10/security-releases-issued/ 或者 https://www.djangoproject.com/weblog/2013/aug/13/security-releases-issued/。如果你继续使用一个没有安全更新的Django版本,那么你需要自己判断这个版本是否受到影响,并采取必要的措施来解决问题。

10

这个免责声明的意思是:“别来问我们帮忙,你在做我们告诉你不要做的事情。”

  1. 这不安全,因为没有人会去修复新发现的漏洞。你可以在NIST漏洞数据库里查找Django,看看可能存在的问题列表。“不再支持”意味着如果Django的某个版本发现了问题,没人会去检查1.3或更早版本是否也有这个问题,也不会发布修复。

  2. 除了无法使用新功能,这些旧版本可能会受到攻击,而这些攻击在目前维护的Django版本中已经被解决。如果你选择使用这些旧版本,你就得自己去查找新发现的漏洞并修复。这是个坏主意,不仅因为工作量大,还因为你可能做的修复没有社区的监督,也没有测试来发现新问题,直到坏人先发现。

  3. 确实不安全,至少在漏洞存在的意义上。当Django文档提到1.3及之前的版本是不安全的,它们并不是说代码坏掉了。它们的意思是代码可能会受到新发现的攻击,而他们不会对此采取任何措施。可以把它理解为“使用风险自负。”

  4. 没错。这个版本没有bug修复。把修复的内容移植到旧版本上会占用开发者宝贵的时间,这就是为什么没有人会无限期支持一个产品的某个版本。

总结:别用这个版本。Django文档有充分的理由警告你远离它。

撰写回答