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

*2024 年 12 月 4 日*

Django 5.1.4 修复了 5.1.3 中一个严重程度为“高”的安全问题、一个严重程度为“中等”的安全问题以及多个错误。

## CVE-2024-53907: `strip_tags()` 中潜在的拒绝服务漏洞

[`strip_tags()`](/zh-hans/6.0/ref/utils/#django.utils.html.strip_tags) 在处理某些包含大量嵌套不完整 HTML 实体的输入时，评估速度会极其缓慢。`strip_tags()` 方法用于实现相应的 [`striptags`](/zh-hans/6.0/ref/templates/builtins/#std-templatefilter-striptags) 模板过滤器，因此该过滤器也容易受到攻击。

`strip_tags()` 现在在引发 [`SuspiciousOperation`](/zh-hans/6.0/ref/exceptions/#django.core.exceptions.SuspiciousOperation) 异常之前，对 `HTMLParser` 的递归调用次数设置了上限。

请记住，`strip_tags()` 的结果绝对不保证是安全的 HTML。因此，在将 `strip_tags()` 调用的结果标记为安全之前，绝对不要忘记首先进行转义，例如使用 [`django.utils.html.escape()`](/zh-hans/6.0/ref/utils/#django.utils.html.escape)。

## CVE-2024-53908: 在 Oracle 上通过 `HasKey(lhs, rhs)` 潜在的 SQL 注入漏洞

在 Oracle 上直接使用 `django.db.models.fields.json.HasKey` 查找时，如果将不受信任的数据用作 `lhs` 值，可能会受到 SQL 注入攻击。

通过 `__` 语法使用 [`has_key`](/zh-hans/6.0/topics/db/queries/#std-fieldlookup-jsonfield.has_key) 查找的应用程序不受影响。

## 漏洞修复

- 修复了在 Python 3.13+ 上 `createsuperuser` 崩溃的问题，该问题是由于在无法确定用户名时未处理的 `OSError` 引起的（[#35942](https://code.djangoproject.com/ticket/35942)）。
- 修复了 Django 5.1 中的一个回归问题，该问题导致在对具有延迟字段的实例调用 `Model.refresh_from_db()` 时未更新关系字段（[#35950](https://code.djangoproject.com/ticket/35950)）。
