Django 1.4.20 release notes

2015年3月18日

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

Mitigated possible XSS attack via user-supplied redirect URLs

Django在一些情况下依赖于用户输入(例如,django.contrib.auth.views.login()i18n)将用户重定向到“成功”网址。对这些重定向(即django.utils.http.is_safe_url())的安全检查接受了具有前导控制字符并因此考虑了像\x08javascript:...安全。此问题目前不影响Django,因为我们只将此网址放入Location响应标头中,浏览器似乎忽略了JavaScript。我们测试的浏览器还会将以前缀为控制字符(如%08//example.com)的URL视为相对路径,因此重定向到不安全目标也不是问题。

但是,如果开发人员依赖is_safe_url()提供安全的重定向目标并将此类网址放入链接,则他们可能会遭受XSS攻击,因为某些浏览器(例如Google Chrome浏览器)会忽略在锚href中启动URL。