Django 2.0.2 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.1.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 时崩溃的问题。