Django 1.5.2发行说明

2013年8月13日

这是django 1.5.2,是django 1.5的错误修复和安全发行版。

通过用户提供的重定向URL减轻了可能的XSS攻击

Django在某些情况下依赖于用户输入(例如 django.contrib.auth.views.login(), django.contrib.comments, and i18n) to redirect the user to an "on success" URL. The security checks for these redirects (namely django.utils.http.is_safe_url()) didn't check if the scheme is http(s) and as such allowed javascript:... 要输入的URL。如果开发商依赖 is_safe_url() 为了提供安全的重定向目标并将这样的URL放到链接中,他们可能会遭受XSS攻击。此错误当前不影响Django,因为我们只将此URL放入 Location 响应头和浏览器似乎忽略了那里的javascript。

中的XSS漏洞 django.contrib.admin

如果A URLField 在django 1.5中使用,它在管理更改页上显示字段的当前值和指向目标的链接。这个小部件的显示程序有缺陷,允许XSS使用。

错误修正

  • 修复了一起车祸 prefetch_related() (19607)以及一些 pickle 回归 prefetch_related (20157和20257)。

  • 修正了回归 django.contrib.gis 在python 3(20773)上的谷歌地图输出中。

  • 制造 DjangoTestSuiteRunner.setup_databases 正确处理默认数据库(19940)的别名并防止 teardown_databases 尝试删除别名(20681)。

  • 修正了 django.core.cache.backends.memcached.MemcachedCache 后端的 get_many() python 3(20722)上的方法。

  • 固定的 django.contrib.humanize 翻译语法错误。受影响的语言:墨西哥西班牙语、蒙古语、罗马尼亚语、土耳其语(20695)。

  • 增加了对车轮组件的支持(19252)。

  • CSRF令牌现在在用户登录时旋转。

  • 一些python 3兼容性修复程序包括20212和20025。

  • 修复了一些罕见的案例 get() 异常无限重复(20278)。

  • makemessages 不再与碰撞 UnicodeDecodeError (α20354)。

  • 固定的 geojson 用太空石探测。

  • assertContains() 再次使用二进制内容(20237)。

  • 固定的 ManyToManyField 如果它有Unicode name 参数(20207)。

  • 确保wsgi请求的路径基于 SCRIPT_NAME 环境变量或 FORCE_SCRIPT_NAME 设置,无论是否有尾随斜杠(20169)。

  • override_settings() 装饰符。如果你击中了 AttributeError: 'Settings' object has no attribute '_original_allowed_hosts' 例外的是,它可能是固定的(20636)。