HSTS实施

时间:2019-06-20 18:54:42

标签: c# asp.net-mvc

我想在我的网站上实现HSTS,并且根据要求,我确实有一些页面作为HTTPS服务器存储,而某些页面作为HTTP服务器存储。 我已经给出了只为HTTPS页而不是HTTP页添加HSTS的条件。

if (HttpContext.Current.Request.Url.Scheme.ToLower() == "https")
{
    response.Headers.Add("Strict-Transport-Security", 
        "max-age=31536000;includeSubDomains; preload");
}

添加此代码后,它说重定向太多。

请让我知道如何在某些页面HTTPS和某些页面HTTP的情况下实现HSTS。

1 个答案:

答案 0 :(得分:1)

如果您希望某些页面在同一域上没有https,我认为您不能使用HSTS。 HSTS指示客户端(浏览器)仅通过https

访问服务器

更多信息,请参见维基百科https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

  

当Web应用程序向用户代理发布HSTS策略时,请遵守   用户代理的行为如下(RFC 6797):[10]

     
      
  1. 自动打开任何引用Web应用程序的不安全链接   进入安全链接。 (例如,http://example.com/some/page/将   在访问之前将其修改为https://example.com/some/page/   服务器。)
  2.   
  3. 如果无法确保连接的安全性(例如   服务器的TLS证书不受信任),用户代理必须   终止连接(RFC 6797第8.4节,安全性错误   运输机构),并且不应允许用户访问   Web应用程序(第12.1节“无用户追索权”)。
  4.