# Django 5.2.8 documentation

# Django 1.8.4 版本发行说明

2015 年 8 月 18 日

Django 1.8.4 修复了 1.8.3 中的一个安全问题和几个错误。

## 在 `logout()` 视图中存在拒绝服务的可能性，因为会话存储被填满。

以前，在匿名访问 `django.contrib.auth.views.logout()` 视图时可以创建会话（前提是没有像在管理界面中那样使用 `login_required()` 进行装饰）。这可能允许攻击者通过发送重复的请求轻松创建许多新的会话记录，潜在地填满会话存储或导致其他用户的会话记录被逐出。

`SessionMiddleware` 已经修改，不再创建空的会话记录，即使 `SESSION_SAVE_EVERY_REQUEST` 处于活动状态也是如此。

## 漏洞修复

- 增加了对新添加的 `UUIDField` 的值进行序列化的能力 (#25019)。

- 如果在新的 `TEMPLATES` 设置之外定义了旧的 `TEMPLATE_*` 设置，将会添加一个系统检查警告。

- 修复了 `QuerySet.raw()`，以便在使用具有 `primary_key=True` 的 `ForeignKey` 字段的 `db_column` 名称时不会引发 `InvalidQuery` 错误 (#12768)。

- 在 `TestCase.setUpTestData()` 中防止异常泄漏事务（#25176）。

- 修复了 `contrib.postgres.forms.HStoreField` 中的 `has_changed()` 方法（#25215，#25233）。

- 在运行 `migrate` 命令时修复了合并迁移记录的问题（#25231）。

- 将 未保存的模型实例分配数据丢失检查 移动到了 `Model.save()` 中，以便更容易使用内存中的模型（#25160）。

- 防止了对 `ArrayField` 创建 `varchar_patterns_ops` 和 `text_patterns_ops` 索引（#25180）。