Django 1.7.7 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.1.x/releases/1.7.7
Django 1.7.7 发行说明
2015 年 3 月 18 日
Django 1.7.7 修复了 1.7.6 中的几个错误和安全问题。
通过用户提供的重定向 URL 缓解可能的 XSS 攻击
Django 在某些情况下依赖于用户输入(例如 django.contrib.auth.views.login()
和 i18n) 将用户重定向到“成功”的 URL。 这些重定向的安全检查(即 django.utils.http.is_safe_url()
)接受带有前导控制字符的 URL,因此认为像 \x08javascript:...
这样的 URL 是安全的。 这个问题目前不会影响 Django,因为我们只将此 URL 放入 Location
响应标头中,而浏览器似乎忽略了那里的 JavaScript。 我们测试的浏览器也将带有控制字符前缀的 URL,例如 %08//example.com
视为相对路径,因此重定向到不安全的目标也不是问题。
但是,如果开发人员依赖 is_safe_url()
提供安全的重定向目标并将此类 URL 放入链接中,则他们可能会遭受 XSS 攻击,因为某些浏览器(例如 Google Chrome)会忽略 URL 开头的控制字符在锚 href
中。
错误修正
- 修复了迁移中类的重命名,其中重命名子类会导致为引用超类的对象记录不正确的状态 (:ticket:`24354`)。
- 合并迁移冲突时停止在试运行模式下写入迁移文件。 当使用
verbosity=3
调用makemigrations --merge
时,迁移文件将写入stdout
(:ticket:`24427`)。