Django 1.1.3 release notes

欢迎来到Django 1.1.3!

这是Django 1.1系列中的第三个“bugfix”版本,提高了Django 1.1代码库的稳定性和性能。

除了一个例外,Django 1.1.3保持与Django 1.1.2的向后兼容性。它还包含一些修复和其他改进。对于目前使用或定位到Django 1.1的任何开发或部署,建议升级Django 1.1.2。

有关新功能,向后兼容性和1.1版本中已弃用的功能的完整详情,请参阅Django 1.1 release notes

Backwards incompatible changes

Restricted filters in admin interface

Django管理界面django.contrib.admin支持通过相应模型上的字段(包括跨数据库级关系)对显示的对象列表进行过滤。这是通过在URL的查询字符串部分中传递查找参数来实现的,而ModelAdmin类上的选项允许开发人员指定将生成用于过滤的自动链接的特定字段或关系。

一个历史上未记录的和非官方支持的特征是用户具有足够的知识的模型的结构和这些查找参数的格式通过操纵查询字符串发明有用的新过滤器的能力。

然而,已经证明,这可以被滥用以获得对管理员用户的权限之外的信息的访问;例如,具有访问管理员和足够的模型结构和关系的知识的攻击者可以构造查询字符串,其中重复使用由Django数据库API支持的正则表达式查找暴露诸如用户的密码哈希的敏感信息。

为了解决这个问题,django.contrib.admin现在将验证查询字符串查找参数只指定正被查看的模型的字段,或者已经被应用程序开发人员使用上述预先存在的机制显式列入白名单的交叉关系。这对于依赖于先前能够插入任意查找的任何用户而言是向后不兼容的。