2018年3月6日
Django2.0.3修复了2.0.2中的两个安全问题和几个错误。此外,还合并了Transifex的最新字符串翻译。
urlize 和 urlizetrunc 模板筛选器¶这个 django.utils.html.urlize() 由于两个正则表达式中存在灾难性的回溯漏洞,函数在评估某些输入时非常缓慢。这个 urlize() 函数用于实现 urlize 和 urlizetrunc 模板过滤器,因此容易受到攻击。
有问题的正则表达式被行为类似的解析逻辑所取代。
truncatechars_html 和 truncatewords_html 模板筛选器¶如果 django.utils.text.Truncator 的 chars() 和 words() 方法已通过 html=True 理由是,由于正则表达式中存在灾难性的回溯漏洞,它们在评估某些输入时非常慢。这个 chars() 和 words() 方法用于实现 truncatechars_html 和 truncatewords_html 模板过滤器,因此容易受到攻击。
正则表达式中的回溯问题是固定的。
修正了导致切片的回归 QuerySet.distinct().order_by() 然后 count() 撞车 (#29108 )
将日期时间和时间输入格式的优先级设置为 %f 用于修复显示“未定义”的管理时间选择器小部件的泰语区域设置 (#29109 )
固定撞车 QuerySet.order_by(Exists(...)) (#29118 )
制造 Q.deconstruct() 具有多个关键字参数的确定性 (#29125 )您可能需要修改 Q 在现有迁移中,或接受自动生成的迁移。
修正了一个回归式,其中 When() 带有列表参数的表达式崩溃 (#29166 )
修复了使用 Window() 子查询中的表达式 (#29172 )
固定的 AbstractBaseUser.normalize_username() 如果崩溃 username 参数不是字符串 (#29176 )
5月 28, 2025