Django 2.2.4 发行说明 — Django 文档

来自菜鸟教程
Django/docs/2.2.x/releases/2.2.4
跳转至:导航、​搜索

Django 2.2.4 发行说明

2019 年 8 月 1 日

Django 2.2.4 修复了安全问题和 2.2.3 中的几个错误。

CVE-2019-14232:django.utils.text.Truncator 中的拒绝服务可能性

如果 django.utils.text.Truncatorchars()words() 方法通过 html=True 参数,由于在正则表达式。 chars()words() 方法用于实现 :tfilter:`truncatechars_html`:tfilter:`truncatewords_html` 模板过滤器,它们是因而脆弱。

Truncator 使用的正则表达式已经过简化,以避免潜在的回溯问题。 因此,有时会在截断的输出中包含尾随标点符号。


CVE-2019-14233:strip_tags() 中的拒绝服务可能性

由于底层 HTMLParser 的行为,django.utils.html.strip_tags() 在评估包含大序列嵌套不完整 HTML 实体的某些输入时会非常慢。 strip_tags() 方法用于实现相应的 :tfilter:`striptags` 模板过滤器,因此也容易受到攻击。

strip_tags() 现在可以避免在删除标签的进程中递归调用 HTMLParser,但必须停止制作不完整的 HTML 实体。

请记住,绝对不保证 strip_tags() 的结果是 HTML 安全的。 所以永远不要在没有先转义的情况下将 strip_tags() 调用的结果标记为安全,例如使用 django.utils.html.escape()


CVE-2019-14234:JSONField/HStoreField 键和索引查找中的 SQL 注入可能性

:lookup:`键和索引查找 ` 为了 JSON 字段:lookup:`键查找 ` 为了存储字段受到 SQL 注入,使用适当制作的字典,具有字典扩展,作为**kwargs传递给QuerySet.filter() .


CVE-2019-14235:django.utils.encoding.uri_to_iri() 中潜在的内存耗尽

如果传递某些输入,django.utils.encoding.uri_to_iri() 可能会在重新百分比编码无效的 UTF-8 八位字节序列时由于过度递归而导致大量内存使用。

uri_to_iri() 现在可以在对无效的 UTF-8 八位字节序列进行重新百分比编码时避免递归。


错误修正

  • 修复了在 Django 2.2 中按字段类型排序 QuerySet.union()intersection()difference() 时出现的回归问题,导致使用的顺序错误(:票:`30628`)。
  • 修复了在 DateRangeFieldDateTimeRangeField 上添加带有 contains 查找的检查约束时,如果表达式的右侧是相同类型( :票:`30621`)。
  • 修复了 Django 2.2 中如果文件路径包含空字符 ('\x00') (:ticket:`30506`) 时自动重新加载器崩溃的回归。
  • 修复了 Django 2.2 中的一个回归,如果无法解析翻译目录,自动重新加载器会崩溃 (:ticket:`30647`)。