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 上的序列和触发器命名方案。如果在 DATABASESOPTIONS 部分中包含 'use_returning_into': False,这会导致一些表的插入操作出错。现在已经恢复了 1.11 之前的命名方案。不幸的是,这必然需要更新使用 Django 1.11.[1-4] 创建的 Oracle 表。可以使用 #28451 评论 8 中的升级脚本来更新序列和触发器的名称,以使用 1.11 之前的命名方案。
  • 为了与基于函数的 logout() 视图相等,为 LogoutView 添加了 POST 请求支持 (#28513)。
  • 如果 pages_per_rangeNone,则在 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)。