Django 1.1.3发行说明

欢迎来到Django 1.1.3!

这是Django1.1系列中的第三个“错误修复”版本,提高了Django1.1代码库的稳定性和性能。

除了一个例外,django 1.1.3与django 1.1.2保持向后兼容性。它还包含许多修复和其他改进。django 1.1.2是当前使用或针对django 1.1的任何开发或部署的建议升级。

有关1.1分支中新功能、向后不兼容和不推荐使用的功能的完整详细信息,请参见 Django 1.1发行说明 .

向后不兼容的更改

管理界面中的受限筛选器

Django管理界面, django.contrib.admin ,支持按相应模型上的字段筛选显示的对象列表,包括跨数据库级关系。这是通过在url的querystring部分传递查找参数实现的,modeladmin类上的选项允许开发人员指定特定的字段或关系,这些字段或关系将生成用于筛选的自动链接。

一个历史上未记录和非官方支持的特性是,用户能够充分了解模型的结构和这些查找参数的格式,从而通过操纵查询字符串来动态地发明有用的新过滤器。

但是,已经证明,这可以被滥用,以获取管理员用户权限之外的信息;例如,具有管理员权限和足够的模型结构和关系知识的攻击者可以构造查询字符串,该字符串可以重复使用Django DA支持的正则表达式查找tabase api——公开敏感信息,如用户的密码散列。

为了补救这一点, django.contrib.admin 现在将验证查询字符串查找参数或者只指定正在查看的模型上的字段,或者验证应用程序开发人员使用上面提到的预先存在的机制显式地允许的交叉关系。对于依赖先前插入任意查找能力的任何用户来说,这是向后不兼容的。