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)。