在 ASP.NET 中實作 HTTPS 網站範圍:綜合指南
為了確保安全通信,將所有網站流量重新導向到HTTPS。實作此措施歷來涉及檢查各個頁面載入事件和重定向非 HTTPS 請求。然而,還有更有效的方法,包括利用 web.config 設定。
HTTP 嚴格傳輸安全 (HSTS)
HSTS 建立一個指示瀏覽器始終連接的指令使用 HTTPS 訪問網站,無論初始請求如何。啟用HSTS 需要將以下程式碼新增至您的web.config 檔案:
<configuration> <system.webServer> <rewrite> <rules> <!-- Prevent HTTP requests and enable HSTS --> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
此設定將所有HTTP 請求重新導向至HTTPS,並將HSTS 標頭新增至後續HTTPS 回應中,指示瀏覽器對指定的伺服器強制執行HTTPS連接
原始解決方案
而HSTS 是建議的方法,以下程式碼仍可用作後備:
public void Application_BeginRequest(Object sender, EventArgs e) { if (!HttpContext.Current.Request.IsSecureConnection && !HttpContext.Current.Request.IsLocal) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
注意: 此方法依賴Application_BeginRequest 事件,事件可能不適用於所有場景。另一方面,HSTS 提供了更強大、更可靠的解決方案。
以上是如何在 ASP.NET 中在網站範圍內強制執行 HTTPS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!