Django 1.4.2 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.2.x/releases/1.4.2
Django 1.4.2 发行说明
2012 年 10 月 17 日
这是 Django 1.4 系列中的第二个安全版本。
主机头中毒
Django 的某些部分——独立于最终用户编写的应用程序——使用完整的 URL,包括从 HTTP 主机头生成的域名。 一些针对此的攻击超出了 Django 的控制能力,需要正确配置 Web 服务器; 一段时间以来,Django 的文档都包含建议用户进行此类配置的注释。
然而,正如最近向我们报告的那样,Django 自己内置的 Host 标头解析仍然容易受到攻击。 Django 1.3.3 和 Django 1.4.1 中的 Host 标头解析 - 特别是 django.http.HttpRequest.get_host()
- 错误地处理了标头中的用户名/密码信息。 因此,例如,在“validsite.com”上运行时,Django 将接受以下 Host 标头:
Host: validsite.com:random@evilsite.com
使用它,攻击者可以导致 Django 的某些部分——尤其是密码重置机制——生成并向用户显示任意 URL。
为了解决这个问题,正在修改 HttpRequest.get_host()
中的解析; 包含潜在危险内容(例如用户名/密码对)的主机标头现在会引发异常 django.core.exceptions.SuspiciousOperation。
此问题的详细信息最初作为 安全公告 发布在网上。
其他错误修正和更改
- 子类 HTMLParser 仅适用于适当的 Python 版本 (#18239)。
- 将 batch_size 参数添加到 qs.bulk_create() (#17788)。
- 修复了管理过滤器中的一个小回归,其中格式错误的日期作为 url 参数传递导致未处理的 ValidationError (#18530)。
- 修复了访问模板中的权限时的无限循环错误 (#18979)
- 修复了一些 Python 2.5 兼容性问题
- 修复了 Content-Disposition 标头中引用文件名的问题 (#19006)
- 使
trans
和blocktrans
标签中的上下文选项接受用单引号括起来的文字 (#18881)。 - 许多文档改进和修复。