【发布时间】:2020-04-16 16:38:41
【问题描述】:
我正在阅读官方文档以在 ASP.NET Core 中实施 HTTPS。在那里我发现了一个警告 -
不要在接收敏感信息的 Web API 上使用 RequireHttpsAttribute 信息。 RequireHttpsAttribute 使用 HTTP 状态码来重定向 浏览器从 HTTP 到 HTTPS。 API 客户端可能不理解或不服从 从 HTTP 重定向到 HTTPS。此类客户可能会通过以下方式发送信息 HTTP。 Web API 应该:
- 不监听 HTTP。
- 关闭状态码为 400(错误请求)的连接并且不处理请求。
我对 [RequireHttps] 属性的了解是它设置了 302 Found 代码和一个重定向 url。像这样 -
GET http://api.example.com/values
302 Found
Location: https://api.example.com/values
另一方面,官方文档建议使用 -
HTTPS重定向中间件(UseHttpsRedirection)重定向HTTP 对 HTTPS 的请求。
- 使用默认的 HttpsRedirectionOptions.RedirectStatusCode (Status307TemporaryRedirect)。
据我了解,它还将HTTP重定向到HTTPS,具有不同的状态码307。
对我来说,他们正在做类似的事情。我不清楚使用HTTPS Redirection Middleware (UseHttpsRedirection) 比使用RequireHttps Attribute 有什么好处。我在这里缺少什么?
【问题讨论】:
标签: asp.net-core