ASP.NET 中的永久 HTTPS 强制实施
问题:
以前,在所有请求都需要手动检查每个页面加载事件并在必要时重定向到 HTTPS。有更高效的解决方案吗?
答案:
HTTP 严格传输安全(HSTS)
HSTS 已合并集成到 ASP.NET 中以提供无缝的 HTTPS 执行机制。它的工作原理是向客户端浏览器发送一个特殊标头,指示将来对指定域的所有请求都必须通过 HTTPS 进行。
实现:
<outboundRules> <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=31536000" /> </rule> </outboundRules>
protected void Application_BeginRequest(Object sender, EventArgs e) { if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false)) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
HSTS 的优点:
以上是如何在 ASP.NET 中有效地实施 HTTPS?的详细内容。更多信息请关注PHP中文网其他相关文章!