Middleware (3) — HttpsPolicy

1 Overview

我们都知道 Https 请求访问是安全的,因为通过 SSL 层加密,可以保证不被中间人攻击。所以一般而言,Web 服务应该只向公网暴露 Https 的端口。但是如果客户端客户端仍然是通过 Http 请求访问,我们需要有一个中间件,通过 Redirect 方式将其映射到 Https 服务的端口。而且还需要让客户端(浏览器)记住在接下来访问的时候,应该直接访问 Https 端口。

所以我们提供了两个中间件来完成这个工作 :

接下来我们看一下这两个中间件是怎么工作的。

2. HttpsRedirectionMiddleware

首先看一下 HttpsRedictionOptions 这个类

包含了两个属性

那么如果 HttpsPort 没有指定,该如何寻找呢?

步骤如下

现在所有的准备工作完毕,开始准备处理请求

3 HstsMiddleware

HTTP Strict-Transport-Security (HSTS) 是相应的 Header 中的一项,它可以让浏览器在访问这个站点的时候,请使用 Https , 比如说

Strict-Transport-Security: max-age=31536000; includeSubDomains

所以 HstsOptions 指定了这些信息

注意 Preload 不是标准的一部分。

中间件处理的流程是这样

A software developer in Microsoft at Suzhou. Most articles spoken language is Chinese. I will try with English when I’m ready