0

所以我把它放在我的 Global.asax.cs 中以使用 HSTS 强制执行 HTTPS

protected void Application_BeginRequest(Object sender, EventArgs e)
{
      if (!Request.IsLocal && AppSettings.IsSSLEnforced)
      {
          switch (Request.Url.Scheme)
          {
             case "https":
                 Response.AddHeader("Strict-Transport-Security", "max-age=300");
                 break;
             case "http":
                 var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
                 Response.Status = "301 Moved Permanently";
                 Response.AddHeader("Location", path);
                 break;
           }
       }
}

现在,问题是这种强制是基于我的应用程序中的一个设置,它决定是否强制执行,当它设置为不强制时,它仍然在强制执行。如何让它清除并停止重定向?

我尝试添加一个我把

Response.AddHeader("Strict-Transport-Security", "max-age=0");

将 max-age 设置为 0 不起作用。如何删除它?似乎 max-age 不起作用(我正在使用 chrome),因为它已经超过 300 秒(5 分钟)

编辑:我现在尝试在 IE 中加载,但它不执行重定向,我尝试进入 chrome 设置并删除条目,但仍然没有。

4

1 回答 1

1

一旦您将 HSTS 标头发送到用户的浏览器,它将始终使用 https。它是按域指定的,并且可以选择加上子域。

一旦浏览器访问您的域并收到 HSTS 标头,它将始终使用 https(强制执行)。现在您无法通过服务器响应取消执行它。

因此,最好在 Web 应用程序防火墙 (WAF) 级别添加 HSTS 和重定向标头,并且当您域上的所有资源都可以通过 https 提供服务时。

https://www.chromium.org/hsts/ https://blog.cloudflare.com/enforce-web-policy-with-hypertext-strict-transport-security-hsts/

于 2015-07-24T04:38:43.700 回答