2015 年 8 月 18 日
Django 1.8.4 修复了 1.8.3 中的一个安全问题和几个错误。
logout()
视图中存在拒绝服务的可能性,因为会话存储被填满。¶以前,在匿名访问 django.contrib.auth.views.logout()
视图时可以创建会话(前提是没有像在管理界面中那样使用 login_required()
进行装饰)。这可能允许攻击者通过发送重复的请求轻松创建许多新的会话记录,潜在地填满会话存储或导致其他用户的会话记录被逐出。
SessionMiddleware
已经修改,不再创建空的会话记录,即使 SESSION_SAVE_EVERY_REQUEST
处于活动状态也是如此。
如果在新的 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)。
4月 27, 2025