Django 3.0.1 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.1.x/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)[X245X 中的两个标识符进行不区分大小写的比较]。 匹配后,包含重置令牌的电子邮件将发送到记录的电子邮件地址,而不是提交的地址。
错误修正
- 通过添加一个选项来禁用 异步安全 机制和 DJANGO_ALLOW_ASYNC_UNSAFE,通过恢复在 Jupyter 和其他强制异步上下文的环境中使用 Django 的能力,修复了 Django 3.0 中的回归 环境变量(:ticket:`31056`)。
- 修复了 Django 3.0 中的回归,其中 re_path() 使用的
RegexPattern
在缺少所有可选命名组时返回要传递给视图的位置参数 (:ticket:` 31061`)。 - 重新允许,在 Django 3.0 中回归后,Window 表达式用于查询集过滤器之外的条件,例如 在 When 条件下 (:ticket:`31060`)。
- 修复了 SplitArrayField 中数据丢失的可能性。 当与
ArrayField(BooleanField())
一起使用时,第一个True
值之后的所有值都被标记为已检查,而不是保留传递的值 (:ticket:`31073`)。