---
title: "Django 2.2.2 版本发行说明"
version: 5.1
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/5.1/releases/2.2.2/
canonical: https://djangodocs.dev/zh-hans/5.1/releases/2.2.2/
---
# Django 2.2.2 版本发行说明

*2019 年 6 月 3 日*

Django 2.2.2 修复了 2.2.1 版本中的一些安全问题和多个 bug 。

## CVE-2019-12308 ： AdminURLFieldWidget 跨站脚本攻击（XSS）

由 `AdminURLFieldWidget` 生成的可点击的 "当前 URL" 链接显示了提供的值，而没有将其验证为安全的 URL。因此，存储在数据库中的未经验证的值，或者作为 URL 查询参数有效载荷提供的值，都可能导致可点击的 JavaScript 链接。

现在，在显示可点击链接之前，`AdminURLFieldWidget` 使用 [`URLValidator`](/zh-hans/5.1/ref/validators/#django.core.validators.URLValidator) 对提供的值进行验证。您可以通过将 `validator_class` 关键字参数传递给 `AdminURLFieldWidget.__init__()` 来自定义验证器，例如在使用 [`formfield_overrides`](/zh-hans/5.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides) 时。

## 修复了捆绑的 jQuery 库中的 CVE-2019-11358 问题：原型污染

jQuery 在 3.4.0 之前处理 `jQuery.extend(true, {}, ...)` 时存在问题，因为它可能因为 `Object.prototype` 污染而出错。如果一个未经过清理的源对象包含一个可枚举的 `__proto__` 属性，它可能会扩展原生的 `Object.prototype`。

Django 管理员使用的捆绑版本的 jQuery 已经修补，以允许 `select2` 库使用 `jQuery.extend()`。

### 漏洞修复

- 修复了 Django 2.2 中的一个回归问题，导致在动态添加的管理内联中停止工作的“显示/隐藏”切换 ([#30459](https://code.djangoproject.com/ticket/30459))。
- 修复了 Django 2.2 中的一个回归问题，其中如果 `Meta.ordering` 包含表达式，则废弃消息会导致崩溃 ([#30463](https://code.djangoproject.com/ticket/30463))。
- 修复了 Django 2.2.1 中的一个回归问题，其中 [`SearchVector`](/zh-hans/5.1/ref/contrib/postgres/search/#django.contrib.postgres.search.SearchVector) 生成带有多余的 `Coalesce` 调用的 SQL ([#30488](https://code.djangoproject.com/ticket/30488))。
- 修复了 Django 2.2 中的一个回归问题，当使用 `StatReloader` 时，自动重新加载器无法检测到 `manage.py` 文件的更改 ([#30479](https://code.djangoproject.com/ticket/30479))。
- 修复了在 `Subquery` 中使用时，带有 `ordering` 参数的 [`ArrayAgg`](/zh-hans/5.1/ref/contrib/postgres/aggregates/#django.contrib.postgres.aggregates.ArrayAgg) 和 [`StringAgg`](/zh-hans/5.1/ref/contrib/postgres/aggregates/#django.contrib.postgres.aggregates.StringAgg) 崩溃的问题 ([#30315](https://code.djangoproject.com/ticket/30315))。
- 修复了 Django 2.2 中的一个回归问题，当引发具有自定义签名的异常时，自动重新加载器崩溃的问题 ([#30516](https://code.djangoproject.com/ticket/30516))。
- 修复了 Django 2.2.1 中的一个回归问题，当使用 `StatReloader` 时，自动重新加载器不必要地多次重新加载翻译文件的问题 ([#30523](https://code.djangoproject.com/ticket/30523))。
