August 1, 2019
Django 2.2.4修复了2.2.3中的安全问题和几个错误。
django.utils.text.Truncator¶如果 django.utils.text.Truncator %s chars() 和 words() 方法已通过 html=True 争论说,由于正规表达中存在灾难性的回溯漏洞,他们评估某些输入的速度极其缓慢。的 chars() 和 words() 方法用于实现 truncatechars_html 和 truncatewords_html 模板过滤器,因此很容易受到攻击。
使用的正规表达式 Truncator 已被简化,以避免潜在的回溯问题。因此,尾随标点符号现在有时可能会被包括在截断的输出中。
JSONField/HStoreField¶Key and index lookups 为 django.contrib.postgres.fields.JSONField 和 key lookups 为 HStoreField 使用精心设计的字典进行SQL注入,并进行字典扩展,作为 **kwargs 已传递给 QuerySet.filter() 。
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 )。
修复了在添加带有检查约束时,PostgreSQL上的迁移崩溃 contains 查找上 DateRangeField 或 DateTimeRangeField ,如果某个运算式的右侧是相同类型 (#30621 )。
修复了Django 2.2中的回归,如果文件路径包含空字符,则自动重载程序崩溃 ('\x00' ) (#30506 )。
修复了Django 2.2中的回归,如果翻译目录无法解析,自动重新加载器就会崩溃 (#30647 )。
5月 28, 2025