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

*2012 年 10 月 17 日*

这是 Django 1.4 系列中的第二个安全版本。

## Host 头部中毒

Django 的某些部分（与最终用户编写的应用程序无关）使用完整的 URL，包括从 HTTP Host 头生成的域名。针对此类问题的一些攻击超出了 Django 的控制能力，需要正确配置 Web 服务器； Django 的文档已经包含了一段时间的说明，建议用户进行此类配置。

然而，Django 自身内置的 Host 标头解析仍然存在漏洞，最近有人向我们报告了这个问题。Django 1.3.3 和 Django 1.4.1 中的 Host 标头解析 -- 具体来说是 `django.http.HttpRequest.get_host()` -- 在处理标头中的用户名/密码信息时出现了错误。因此，例如，在运行在 `validsite.com` 上时，Django 会接受以下 Host 标头：

```text
Host: validsite.com:random@evilsite.com
```

利用这一点，攻击者可以使 Django 的部分功能（尤其是密码重置机制）为用户生成并显示任意 URL 。

为了解决这个问题，`HttpRequest.get_host()` 中的解析正在被修改；包含潜在危险内容（如用户名/密码对）的 Host 标头现在会引发异常 [`django.core.exceptions.SuspiciousOperation`](/zh-hans/4.2/ref/exceptions/#django.core.exceptions.SuspiciousOperation)。

关于这个问题的详细信息最初被发布在网上作为一份 [安全公告](https://www.djangoproject.com/weblog/2012/oct/17/security/)。

## 不向后兼容的变更

- 新引入的 [`GenericIPAddressField`](/zh-hans/4.2/ref/models/fields/#django.db.models.GenericIPAddressField) 构造函数参数已经适应了所有其他模型字段的参数。现在的前两个关键字参数是 verbose\_name 和 name。

## 其他错误修复和更改

- 仅对适用的 Python 版本子类化 HTMLParser（ #18239 ）。
- 为 qs.bulk\_create() 添加 batch\_size 参数（ #17788 ）。
- 修复了管理员筛选器中的一个小回归问题，其中错误格式的日期作为 URL 参数传递，导致未处理的 ValidationError（ #18530 ）。
- 修复了在模板中访问权限时出现的无限循环错误（ #18979 ）
- 修复了一些与 Python 2.5 兼容性有关的问题。
- 修复了 Content-Disposition 标头中带引号文件名的问题（ #19006 ）。
- 使 `trans` 和 `blocktrans` 标签中的上下文选项接受用单引号包裹的字面值 (#18881)。
- 大量文档改进和修复。
