Django 1.5.2 发行说明 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/releases/1.5.2
跳转至:导航、​搜索

Django 1.5.2 发行说明

2013 年 8 月 13 日

这是 Django 1.5.2,Django 1.5 的错误修复和安全版本。

通过用户提供的重定向 URL 缓解可能的 XSS 攻击

Django 在某些情况下依赖于用户输入(例如 django.contrib.auth.views.login()django.contrib.commentsi18n) 将用户重定向到“成功”的 URL。 这些重定向的安全检查(即 django.utils.http.is_safe_url())没有检查方案是否为 http(s),因此允许输入 javascript:... URL。 如果开发人员依赖 is_safe_url() 提供安全的重定向目标并将此类 URL 放入链接中,他们可能会遭受 XSS 攻击。 这个错误目前不会影响 Django,因为我们只是把这个 URL 放在 Location 响应头中,浏览器似乎忽略了那里的 JavaScript。


django.contrib.admin 中的 XSS 漏洞

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


错误修正

  • 修复了 prefetch_related() (#19607) 的崩溃以及 prefetch_related (#20157 和 #20257) 的一些 pickle 回归。
  • 修复了 Python 3 (#20773) 上 Google 地图输出中 django.contrib.gis 中的回归。
  • 使 DjangoTestSuiteRunner.setup_databases 正确处理默认数据库的别名 (#19940) 并防止 teardown_databases 尝试拆除别名 (#20681)。
  • 修复了 Python 3 上 django.core.cache.backends.memcached.MemcachedCache 后端的 get_many() 方法 (#20722)。
  • 修复了 django.contrib.humanize 翻译语法错误。 受影响的语言:墨西哥西班牙语、蒙古语、罗马尼亚语、土耳其语 (#20695)。
  • 添加了对车轮包的支持 (#19252)。
  • CSRF 令牌现在在用户登录时轮换。
  • 一些 Python 3 兼容性修复,包括 #20212 和 #20025。
  • 修复了 get() 异常无限递归的一些罕见情况 (#20278)。
  • :djadmin:`makemessages` 不再崩溃 UnicodeDecodeError (#20354)。
  • 使用 SpatiaLite 修复了 geojson 检测。
  • assertContains() 再次处理二进制内容 (#20237)。
  • 修复了 ManyToManyField 如果它有一个 Unicode name 参数 (#20207)。
  • 确保 WSGI 请求的路径正确地基于 SCRIPT_NAME 环境变量或 :setting:`FORCE_SCRIPT_NAME` 设置,无论是否有结尾斜杠 (#20169)。
  • 修复了 override_settings() 装饰器的一个模糊错误。 如果您遇到 AttributeError: 'Settings' object has no attribute '_original_allowed_hosts' 异常,则可能已修复 (#20636)。