# Django 5.2.8 documentation

# Django 1.4.6 版本发行说明

2013 年 8 月 13 日

Django 1.4.6 修复了 1.4 系列中之前 Django 版本存在的一个安全问题，以及另一个错误。

这是 Django 1.4 系列中的第六个错误修复/安全发布。

## 通过用户提供的重定向 URL 减轻了可能的 XSS 攻击风险。

Django 在某些情况下（例如，`django.contrib.auth.views.login()`、`django.contrib.comments` 和 i18n）依赖于用户输入来将用户重定向到“成功”URL。这些重定向的安全检查（即 `django.utils.http.is_safe_url()`）没有检查 URL 的协议是否为 `http(s)`，因此允许输入 `javascript:...` 类型的 URL。如果开发人员依赖于 `is_safe_url()` 来提供安全的重定向目标，并将这样的 URL 放入链接中，他们可能会受到 XSS 攻击的影响。当前情况下，这个错误不会影响 Django，因为我们只将这个 URL 放入 `Location` 响应头中，而浏览器似乎会忽略其中的 JavaScript。

## 漏洞修复

- 修复了 `override_settings()` 装饰器的一个晦涩 Bug。如果你遇到了 `AttributeError: 'Settings' object has no attribute '_original_allowed_hosts'` 异常，那么这个问题可能已经修复了（#20636）。