Django 1.4.18 版本发布说明:新特性与升级指南
创始人
2026-05-03 00:21:12
0

Django 1.4.18 版本发行说明

2015 年 1 月 13 日

Django 1.4.18 修复了 1.4.17 中的几个安全问题,以及 1.4.17 版本中出现的 Python 2.5 的回归问题。

通过下划线/破折号混淆进行 WSGI 头欺骗

当将 HTTP 头放入 WSGI 环境时,它们会被规范化,即转换为大写,将所有破折号转换为下划线,并在前面添加 HTTP_。例如,一个名为 X-Auth-User 的头部在 WSGI 环境中会变成 HTTP_X_AUTH_USER (因此也会出现在 Django 的 request.META 字典中)。

不幸的是,这意味着 WSGI 环境无法区分包含破折号和包含下划线的头部:X-Auth-UserX-Auth_User 都会变成 HTTP_X_AUTH_USER。这意味着如果一个头部以安全敏感的方式使用(例如,从前端代理传递身份验证信息),即使代理仔细删除了 X-Auth-User 的任何传入值,攻击者仍然可以提供一个带下划线的 X-Auth_User 头部,并绕过这种保护。

为了防止此类攻击,Nginx 和 Apache 2.4+ 默认会从传入的请求中剥离包含下划线的所有标头。 Django 的内置开发服务器现在也采用相同的做法。不建议将 Django 的开发服务器用于生产环境,但匹配常见生产服务器的行为可以减少部署过程中行为变化的可能性。

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

在某些情况下,Django 依赖于用户输入(例如 django.contrib.auth.views.login()i18n)来将用户重定向到“成功”URL。这些重定向的安全性检查(即 django.utils.http.is_safe_url())未删除在测试的 URL 上的前导空格,因此将类似于 \njavascript:... 的 URL 视为安全的。如果开发人员依赖于 is_safe_url() 提供安全的重定向目标,并将这样的 URL 放入链接中,他们可能会受到 XSS 攻击的影响。目前这个错误不会影响 Django,因为我们只将这个 URL 放入 Location 响应头中,而浏览器似乎会忽略那里的 JavaScript。

django.views.static.serve 的拒绝服务攻击

在旧版本的 Django 中,django.views.static.serve() 视图逐行读取它提供的文件。因此,一个没有换行符的大文件将导致内存使用量等于该文件的大小。攻击者可以利用这一点,通过同时请求许多大文件来发动拒绝服务攻击。现在,这个视图会按块读取文件,以防止大量内存使用。

然而,请注意,这个视图一直带有一个警告,即它没有经过生产环境的强化,只应作为开发辅助工具使用。如果您还没有这样做,现在可能是一个好时机来审计您的项目,并在生产环境中使用真正的前端 Web 服务器提供文件。

漏洞修复

  • 为了保持与 Python 2.5 的兼容性,Django 内置的 six 版本,即 django.utils.six,已经降级到 1.8.0,这是最后一个支持 Python 2.5 的版本。

相关内容

热门资讯

玻璃硬盘原理图 玻璃硬盘原理 玻璃硬盘,又称为磁头悬浮硬盘(Magnetic Head Flying Disk,MHFD),是一种...
闲鱼搜索规则与技巧 闲鱼最新特... 在闲鱼这个二手交易平台上,有很多用户都希望能够找到一些特殊的东西,比如一些罕见的收藏品、独特的手工艺...
家里监控最长能保存多少天的记录... 家里监控一般保存多久 随着科技的发展,家庭监控系统已经成为了许多家庭的必备设备,它不仅可以帮助我们...
华为tag有用吗 华为tag-... 华为Tag是华为手机中的一种功能,它可以帮助用户更好地管理自己的手机数据和应用,通过使用华为Tag,...
ps5手柄可用手机快充充电吗 ... PS5手柄,即PlayStation 5的DualSense手柄,是索尼公司为PlayStation...
QQ音乐提示代理模式可能无法正... QQ音乐提示代理模式可能无法正常访问,如上图所示,是怎么回事呢? 这个可能和你的网络设置有关系,首先...
收到微信有提示音怎么去掉 微信... 微信收到信息没有提示音,可能是由多种原因导致的,以下是一些可能的原因及解决方法: 1. 手机静音或...
a100显卡对应的cuda版本 在进行GPU加速的编程中,CUDA是常用的架构和平台,其版本和显卡型号之间存在着一定的对应关系。本篇...
别人打电话听不见我说话怎么回事... 当我们在使用手机时,可能会遇到别人打电话过来听不见声音的情况,这种情况可能是由多种原因导致的,下面我...
苹果手机非通讯录电话打不进来 ... 手机电话打不进来可能有多种原因,以下是一些常见的问题及解决方法: 1. **信号问题**: ...