---
title: "Django 1.11.22 版本发行说明"
version: 5.1
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/5.1/releases/1.11.22/
canonical: https://djangodocs.dev/zh-hans/5.1/releases/1.11.22/
---
# 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`](/zh-hans/5.1/ref/request-response/#django.http.HttpRequest.scheme) 会错误地将客户端通过 HTTP 发送的请求检测为使用 HTTPS。这导致了 [`is_secure()`](/zh-hans/5.1/ref/request-response/#django.http.HttpRequest.is_secure) 和 [`build_absolute_uri()`](/zh-hans/5.1/ref/request-response/#django.http.HttpRequest.build_absolute_uri) 的不正确结果，以及 HTTP 请求不会根据 [`SECURE_SSL_REDIRECT`](/zh-hans/5.1/ref/settings/#std-setting-SECURE_SSL_REDIRECT) 进行重定向到 HTTPS。

现在，`HttpRequest.scheme` 会根据配置的 [`SECURE_PROXY_SSL_HEADER`](/zh-hans/5.1/ref/settings/#std-setting-SECURE_PROXY_SSL_HEADER)，如果已配置，并且请求上设置了适当的标头，对于 HTTP 和 HTTPS 请求都会进行相应的处理。

如果您在反向代理后面部署 Django，该代理转发 HTTP 请求并通过 HTTPS 连接到 Django，请确保验证您的应用程序正确处理依赖于 `scheme`、`is_secure()`、`build_absolute_uri()` 和 `SECURE_SSL_REDIRECT` 的代码路径。
