Django 1.11.22 版本发行说明¶
2019 年 7 月 1 日
Django 1.11.22 修复了 1.11.21 中的一个安全问题。
CVE-2019-12781 :通过 HTTPS 连接的反向代理中,HTTP 检测不正确。¶
当部署在反向代理后面,通过 HTTPS 连接到 Django 时,django.http.HttpRequest.scheme
会错误地将客户端通过 HTTP 发送的请求检测为使用 HTTPS。这导致了 is_secure()
和 build_absolute_uri()
的不正确结果,以及 HTTP 请求不会根据 SECURE_SSL_REDIRECT
进行重定向到 HTTPS。
现在,HttpRequest.scheme
会根据配置的 SECURE_PROXY_SSL_HEADER
,如果已配置,并且请求上设置了适当的标头,对于 HTTP 和 HTTPS 请求都会进行相应的处理。
如果您在反向代理后面部署 Django,该代理转发 HTTP 请求并通过 HTTPS 连接到 Django,请确保验证您的应用程序正确处理依赖于 scheme
、is_secure()
、build_absolute_uri()
和 SECURE_SSL_REDIRECT
的代码路径。