Django 1.11.5 版本发行说明
2017 年 9 月 5 日
Django 1.11.5 修复了 1.11.4 中的一个安全问题和几个漏洞。
CVE-2017-12794 :技术性 500 调试页面的追踪部分可能存在 XSS 漏洞
在旧版本中,在技术性的 500 调试页面模板的一部分中禁用了 HTML 自动转义。在正确的情况下,这可能导致跨站点脚本攻击。这个漏洞不应影响大多数生产站点,因为你不应该在生产设置中运行 DEBUG = True
(这使得这个页面可访问)。
漏洞修复
- 修复了如果 GEOS 版本在末尾具有提交哈希(在 GEOS 3.6.2 中新引入)时的版本解析问题 (#28441)。
- 添加了对
cx_Oracle
6 的兼容性 (#28498)。 - 修复了当选项值为元组时,选择小部件的呈现问题 (#28502)。
- Django 1.11 无意中改变了 Oracle 上的序列和触发器命名方案。如果在
DATABASES
的OPTIONS
部分中包含'use_returning_into': False
,这会导致一些表的插入操作出错。现在已经恢复了 1.11 之前的命名方案。不幸的是,这必然需要更新使用 Django 1.11.[1-4] 创建的 Oracle 表。可以使用 #28451 评论 8 中的升级脚本来更新序列和触发器的名称,以使用 1.11 之前的命名方案。 - 为了与基于函数的
logout()
视图相等,为LogoutView
添加了 POST 请求支持 (#28513)。 - 如果
pages_per_range
为None
,则在BrinIndex.deconstruct()
中省略了它 (#25809)。 - 修复了
SelectDateWidget
本地化选择框中的年份的回归问题 (#28530)。 - 修复了在 Python 2 + Windows 上使用非 Unicode 系统编码时,1.11.4 中的
runserver
崩溃的回归问题 (#28487)。 - 修复了 Django 1.10 中的回归问题,其中对
ManyToManyField
的更改未在管理员更改历史中记录 (#27998),并防止模型表单中的ManyToManyField
初始数据受到后续模型更改的影响 (#28543)。 - 修复了在某些具有多个连接的查询中产生非确定性结果或引发
AssertionError
崩溃的问题 (#26522)。 - 修复了
contrib.auth
中的login()
和logout()
视图中的回归问题,它们忽略了位置参数 (#28550)。