Django 1.4.20 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.1.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
中。