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.comments
和 i18n) 将用户重定向到“成功”的 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)。