IIS下的.net網站安全掃描提示:Strict-Transport-Security 請求頭配置錯誤
IIS下的.net網站安全掃描提示:Strict-Transport-Security 請求頭配置錯誤。 命中詳情:Missing Strict-Transport-Security Header
這是一個非常常見且重要的安全配置問題。Strict-Transport-Security(通常簡稱為 HSTS)響應頭是確保網站始終通過 HTTPS 訪問的關鍵安全機制。
問題解釋
Missing Strict-Transport-Security Header 意味著你的網站在 HTTPS 響應中沒有告訴瀏覽器:“以后請只使用 HTTPS 來訪問我,不要再使用不安全的 HTTP。”
風險:如果沒有這個頭,即使這次用戶通過 HTTPS 訪問了你的網站,下次他可能還是會直接輸入域名(如 www.example.com)或點擊一個 HTTP 鏈接。瀏覽器默認會使用 HTTP 協議訪問,這時如果你的服務器同時支持 HTTP 訪問,用戶就會通過明文傳輸連接,容易受到中間人攻擊。即使你設置了 HTTP 到 HTTPS 的重定向,在重定向發生前的那次 HTTP 請求依然是脆弱的。
解決方案(在 IIS 中配置)
有幾種方法可以在 IIS 中為 .NET 網站添加 HSTS 頭。推薦使用第一種方法,因為它最標準、最靈活。
方法:在 web.config 文件中配置(推薦)
這是最常用且易于管理的方法。你只需要修改網站的 web.config 文件。
· 打開你的網站根目錄下的 web.config 文件。
· 找到 <system.webServer> 節點。如果不存在,就在 <configuration> 節點下創建它。
· 在 <system.webServer> 節點下添加或修改 <httpProtocol> 和 <customHeaders> 部分。
以下是完整的配置示例:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <!-- 添加 HSTS 響應頭 --> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
配置參數解釋:
name="Strict-Transport-Security":指定要添加的響應頭名稱。
value:包含 HSTS 策略指令。
max-age=31536000:(必需) 告訴瀏覽器在多少秒內(31536000 秒 = 365 天)記住這個網站只使用 HTTPS。這是最重要的參數。
includeSubDomains:(可選但強烈推薦) 此策略也適用于所有子域名(如 api.example.com, blog.example.com)。如果你的所有子域名都支持 HTTPS,請務必加上。
preload:(可選) 這是一個更高級的特性。如果你加上這個指令,并且將你的域名提交到 HSTS Preload List,瀏覽器在首次訪問你的網站之前就知道必須使用 HTTPS。這是一個單向操作,撤銷非常困難,請謹慎使用。在測試階段,可以先不加 preload。
上一篇:IIS下的.net網站:加密會話(SSL)Cookie中缺少secure屬性