故事:
在我们的一个项目中,我们正在使用 Django Web 框架。但是,我们目前停留在 1.6.11(主要是因为在 1.7 中放弃了对 Python 2.6 的支持——我们正在努力,但速度很慢)不再维护。很长一段时间没有对 1.6 应用任何安全修复。
我想通过从安全角度证明我们有问题的管理来促进升级过程。
问题:
您能否向我推荐一种策略/方法来证明/证明使用 Django 1.6 不再安全?
故事:
在我们的一个项目中,我们正在使用 Django Web 框架。但是,我们目前停留在 1.6.11(主要是因为在 1.7 中放弃了对 Python 2.6 的支持——我们正在努力,但速度很慢)不再维护。很长一段时间没有对 1.6 应用任何安全修复。
我想通过从安全角度证明我们有问题的管理来促进升级过程。
问题:
您能否向我推荐一种策略/方法来证明/证明使用 Django 1.6 不再安全?
我经常使用 Django,我确实需要将 1.6 迁移到 1.7(尽管大约是 2-3 年前)。在那段时间里,安全性方面最重要的区别是django.contrib.messagesDjango 1.6 中不知道 HTTPS only cookie。换句话说,如果你有类似的东西:
MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage'
而不是会话存储,并且网站被配置为仅发送 HTTPS 连接的 cookie,那么这些 cookie 无论如何都将通过纯 HTTP 发送。
Django 发布流程指出,一旦发布了更高版本 2 的版本,该版本的安全补丁就会停止,除非给定版本是 LTS(长期支持版本)。因此,自从 Django 1.9(甚至 Django 1.10)发布以来,Django 1.7 不再接收任何安全更新。
您应该以升级到 Django 1.8 为目标,因为它是 Django 的 LTS 版本。它将在 2018 年 4 月之前收到安全更新。
并非每个框架升级都是因为安全性,但如果不再支持某个版本,这也意味着不会有错误/热修复。无论新版本中的“更好”功能如何,这应该是升级的重要原因。
更新
作为反驳的论点,可以说功能的增加扩大了攻击面,或者引入了新的错误。
CVE-2016-9013和CVE-2015-5145使您运行的 Django 环境容易受到拒绝服务攻击和信息泄露;因此带来了巨大的信息安全风险。
由于 Django 1.6.11 不再接收任何安全更新,因此无法减轻这些风险(以及此处未提及的其他风险)。