# Django 5.2.8 documentation

# 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，会忽略在锚点的 `href` 中 URL 开头的控制字符。