---
title: "Django 3.0.1 版本发行说明"
version: 6.1
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/6.1/releases/3.0.1/
canonical: https://djangodocs.dev/zh-hans/6.1/releases/3.0.1/
---
# Django 3.0.1 版本发行说明

*2019 年 12 月 18 日*

Django 3.0.1 修复了 3.0 版本中的一个安全问题和几个错误。

## CVE-2019-19844 ：通过密码重置表单可能导致账户劫持

通过提交一个精心设计的电子邮件地址，利用 Unicode 字符使其与现有用户电子邮件在进行比较时转换为小写后相等，攻击者可以为匹配的帐户发送密码重置令牌。

为了避免这个漏洞，密码重置请求现在使用更严格、推荐的算法来比较提交的电子邮件，用于不区分大小写比较两个标识符的算法来自 [Unicode Technical Report 36, section 2.11.2(B)(2)](https://www.unicode.org/reports/tr36/#Recommendations_General)。如果匹配成功，包含重置令牌的电子邮件将发送到记录的电子邮件地址，而不是提交的地址。

## 漏洞修复

- 通过在环境变量 [`DJANGO_ALLOW_ASYNC_UNSAFE`](/zh-hans/6.1/topics/async/#envvar-DJANGO_ALLOW_ASYNC_UNSAFE) 中添加选项，恢复了在 Django 3.0 中修复的一个回归问题，该问题允许在 Jupyter 和其他强制启用异步上下文的环境中使用 Django，以禁用 [异步安全](/zh-hans/6.1/topics/async/#async-safety) 机制。 ([#31056](https://code.djangoproject.com/ticket/31056))。
- 在 Django 3.0 中修复了一个回归问题，其中 `RegexPattern`，被 [`re_path()`](/zh-hans/6.1/ref/urls/#django.urls.re_path) 使用，返回了要传递给视图的位置参数，当所有可选的命名分组都缺失时 ([#31061](https://code.djangoproject.com/ticket/31061))。
- 在 Django 3.0 中修复了一个回归问题，现在可以重新允许在查询集过滤器之外的条件中使用 [`Window`](/zh-hans/6.1/ref/models/expressions/#django.db.models.expressions.Window) 表达式，例如在 [`When`](/zh-hans/6.1/ref/models/conditional-expressions/#django.db.models.expressions.When) 条件中 ([#31060](https://code.djangoproject.com/ticket/31060))。
- 修复了 [`SplitArrayField`](/zh-hans/6.1/ref/contrib/postgres/forms/#django.contrib.postgres.forms.SplitArrayField) 中的数据丢失可能性。当与 `ArrayField(BooleanField())` 一起使用时，第一个 `True` 值后的所有值都被标记为已选中，而不是保留传递的值 ([#31073](https://code.djangoproject.com/ticket/31073))。
