Django3.0.1发行说明

2019年12月18日

django3.0.1修复了3.0中的一个安全问题和几个错误。

CVE-2019-19844:通过密码重置表潜在的账户劫持

通过使用Unicode字符提交一个精心编制的电子邮件地址,在比较时,该字符与现有用户电子邮件的大小写比较相等,攻击者可以收到匹配帐户的密码重置令牌。

为了避免此漏洞,密码重置请求现在使用更严格的推荐算法比较提交的电子邮件,该算法用于比较来自 `Unicode Technical Report 36, section 2.11.2(B)(2)`_ _. 匹配后,包含重置令牌的电子邮件将发送到记录的电子邮件地址,而不是提交的地址。

错误修正

  • 修复了django3.0中的一个回归,方法是恢复在Jupyter和其他强制异步上下文的环境中使用Django的能力,方法是添加一个禁用选项 异步安全 机械装置 DJANGO_ALLOW_ASYNC_UNSAFE 环境变量 (#31056

  • 修正了django3.0中的回归,其中 RegexPattern ,使用人 re_path() ,返回要在缺少所有可选命名组时传递给视图的位置参数 (#31061

  • Reallowed,在django3.0中进行回归之后, Window 在queryset筛选器之外的条件中使用的表达式,例如 When 条件 (#31060

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