Django 3.0.1发布说明

December 18, 2019

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

UTE-2019-19844:通过密码重置表格潜在的帐户劫持

通过使用Unicode字符提交适当制作的电子邮件地址(在大小写进行比较时与现有用户电子邮件相同),攻击者可以收到匹配帐户的密码重置令牌。

为了避免此漏洞,密码重置请求现在使用更严格的推荐算法来比较提交的电子邮件,用于对来自的两个标识符进行区分大小写的比较 Unicode Technical Report 36, section 2.11.2(B)(2). 匹配后,包含重置令牌的电子邮件将被发送到记录中的电子邮件地址,而不是提交的地址。

错误修正

  • 通过添加禁用选项恢复在Deliveryter和其他强制使用Deliverc上下文的环境中使用Django的能力,修复了Django 3.0中的回归 同步安全 机制 DJANGO_ALLOW_ASYNC_UNSAFE 环境变量 (#31056 )。

  • 修复了Django 3.0中的回归,其中 RegexPattern ,使用者 re_path() ,当所有可选命名组缺失时,返回要传递给视图的位置参数 (#31061 )。

  • 继Django 3.0回归后,重新被允许, Window 用于查询集过滤器之外的条件中的表达,例如在 When 条件 (#31060 )。

  • 修复了中数据丢失的可能性 SplitArrayField .与之一起使用时 ArrayField(BooleanField()) ,所有值都在第一个之后 True 值被标记为已检查,而不是保留传递的值 (#31073 )。