2012年10月17日
这是Django1.4系列中的第二个安全版本。
django的某些部分(独立于最终用户编写的应用程序)使用完整的URL,包括从HTTP主机头生成的域名。针对这一点的一些攻击超出了Django的控制能力,并要求正确配置Web服务器;Django的文档在一段时间内包含了建议用户进行此类配置的注释。
然而,正如最近向我们报告的那样,Django自己对主机标头的内置解析仍然存在漏洞。Django 1.3.3和Django 1.4.1中的主机头解析--具体地说, django.http.HttpRequest.get_host()
--错误地处理标头中的用户名/密码信息。因此,例如,当在上运行时,Django将接受以下主机标头 validsite.com
:
Host: validsite.com:random@evilsite.com
使用这种方法,攻击者可以使django的某些部分(尤其是密码重置机制)生成并向用户显示任意的URL。
为了解决这个问题,在 HttpRequest.get_host()
正在修改;包含潜在危险内容(如用户名/密码对)的主机头现在引发异常 django.core.exceptions.SuspiciousOperation
.
此问题的详细信息最初作为 security advisory .
新引进的 GenericIPAddressField
已对构造函数参数进行了调整,以匹配所有其他模型字段的参数。前两个关键字参数现在是详细的名称和名称。
子类htmlparser仅适用于适当的python版本(18239)。
将batch_-size参数添加到qs.bulk_create()(17788)。
修正了管理过滤器中的一个小回归,其中错误格式化的日期作为url参数传递会导致未处理的validationError(18530)。
修复了在模板中访问权限时出现的无限循环错误(18979)
修复了一些Python2.5兼容性问题
修复了内容处置标题中带引号的文件名的问题(19006)
使上下文选项位于 trans
和 blocktrans
标签接受单引号(18881)包装的文字。
大量文档改进和修复。
7月 22, 2024