Django 2.0.2 发行说明 — Django 文档

来自菜鸟教程
Django/docs/3.0.x/releases/2.0.2
跳转至:导航、​搜索

Django 2.0.2 发行说明

2018 年 2 月 1 日

Django 2.0.2 修复了 2.0.1 中的一个安全问题和几个错误。

CVE-2018-6188:AuthenticationForm 中的信息泄露

Django 1.11.8 中的回归使 AuthenticationForm 运行其 confirm_login_allowed() 方法,即使输入了错误的密码。 这可能会泄漏有关用户的信息,具体取决于 confirm_login_allowed() 引发的消息。 如果 confirm_login_allowed() 未被覆盖,攻击者输入任意用户名并查看该用户是否已设置为 is_active=False。 如果 confirm_login_allowed() 被覆盖,可能会泄露更多敏感细节。

此问题已修复,但需要注意的是 AuthenticationForm 无法再引发“此帐户处于非活动状态”。 如果身份验证后端拒绝非活动用户,则会出错(默认身份验证后端 ModelBackend 自 Django 1.10 起已完成此操作)。 这个问题将在 Django 2.1 中重新讨论,作为解决警告的修复程序,它可能过于侵入性,无法包含在旧版本中。


错误修正

  • 修复了“安装成功!”底部隐藏的内容。 某些语言的页面 (:ticket:`28885`)。
  • 如果模型有两个指向同一模型的外键并且目标模型被删除,则修复了不正确的外键无效(:ticket:`29016`)。
  • 修复了使用 QuerySet.values_list(..., flat=True) 后跟 annotate() (:ticket:`29067`) 的回归。
  • 修复了使用几何对象注释的查询集崩溃的回归 (:ticket:`29054`)。
  • 修复了在身份验证后端不接受 request 而后一个接受时 contrib.auth.authenticate() 崩溃的回归 (:ticket:`29071`)。
  • 修复了如果迁移目录没有 __init__.py 文件 (:ticket:`29091`) 时 makemigrations 崩溃的回归。
  • 修复了在 ModelAdmin.raw_id_fields (:ticket:`29094`) 中输入无效 uuid 时崩溃的问题。