在APS.NET Core 2应用程序中使用(并强制执行)HTTPS

时间:2018-03-16 12:18:33

标签: c# https url-rewriting asp.net-core-2.0 hsts

我正在研究在ASP.NET Core 2应用程序上实现(和实施)HTTPS,我看到了Enforcing HTTPS in an ASP.NET Core app,但它让我感到困惑。它提到了两种方法:使用RequireHttpsAttribute或使用URL重写,但在页面开头的警告中,他们提到不要使用RequireHttpsAttribute,因为它正在进行重定向,但是是不是URL重写也在做什么?那么,我们是否能够将它们中的任何一个用于Web API,即使它们收到敏感信息" (如文档页面中的警告所述)。

另外,我听说过HSTS,并且我做了一些研究,但在我看来,在ASP.NET Core中它的标准实现并不存在。我偶然发现了一些NuGet套餐,但是我找不到更多的官员和#34;提供商。

你能帮我理解一下吗?

1 个答案:

答案 0 :(得分:3)

您的困惑可能在于本文的目标是关于非WebAPI应用程序。因此警告 - 不适用于WebAPI。不要使用WebAPI的任何一种方法。

    连接到 http ://example.com上的应用程序的
  • 用户(通过在浏览器中输入网址)应重定向到 HTTPS ://示例.com。这可以使用两种方法之一来完成。

  • 连接到http://webapi.example.com 应用(如网络应用)应 NOT 重定向到https://webapi.example.com。端口80应该关闭或返回状态400(对于nginxIIS,将这些答案中的状态代码更改为400)。

用户不能承受技术安全细节。但是,开发人员应该完全了解并且可以直接连接到https,而不需要重定向。

考虑到您对HSTS“官方”支持的第二次评论,请查看asp.net核心文档中的this sample。公平地说,this仅在几个月前(作为2.1 milestone的一部分)在撰写本文时提交,而不是很多文档。