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 )。
7月 22, 2024