Django 1.4.20 发行说明 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/releases/1.4.20
跳转至:导航、​搜索

Django 1.4.20 发行说明

2015 年 3 月 18 日

Django 1.4.20 修复了 1.4.19 中的一个安全问题。

通过用户提供的重定向 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 中。