首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

解讀 Web 伺服器 HTTP 標頭:IIS 自訂標頭用途、程式碼讀取與安全加固

     編輯:關於ASP.NET

IIS 網站屬性「HTTP 標頭」頁籤允許新增自訂回應標頭。本文解釋其運作機制、瀏覽器與用戶端程式的處理差異、程式碼讀取範例,並列出安全相關標頭建議。

HTTP 標頭基礎

  • **回應標頭**:伺服器隨 HTTP 回應發送的中繼資料 (Content-Type, Cache-Control, Set-Cookie, 自訂標頭等)。
  • **自訂標頭**:如 X-Powered-By: ASP.NET、Author: chenxizhang,瀏覽器不解釋、不顯示,但用戶端程式可讀取利用。

用戶端程式讀取範例 (C#)

static void GetResponse()
{
    var request = (HttpWebRequest)HttpWebRequest.Create("https://localhost/faq.htm");
    request.Credentials = CredentialCache.DefaultNetworkCredentials;
    using (var response = (HttpWebResponse)request.GetResponse())
    {
        Console.WriteLine("標頭資訊:");
        for (int i = 0; i < response.Headers.Count; i++)
            Console.WriteLine($"Key: {response.Headers.Keys[i]}, Value: {response.Headers[i]}");

        using (var reader = new StreamReader(response.GetResponseStream()))
            Console.WriteLine("回應主體:\n" + reader.ReadToEnd());
    }
}

輸出將包含 IIS 設定的自訂標頭 (如 Author: chenxizhang)。

常見安全標頭建議 (回應標頭)

標頭用途建議值
X-Frame-Options防點擊劫持DENY 或 SAMEORIGIN
X-Content-Type-Options防 MIME 嗅探nosniff
Strict-Transport-Security強制 HTTPS (HSTS)max-age=31536000; includeSubDomains
Content-Security-PolicyCSP 防 XSS依專案策略制定
Referrer-Policy控制 Referer 傳送strict-origin-when-cross-origin
Permissions-Policy功能授權 (攝像頭、麥克風等)最小權限原則

可在 IIS 「HTTP 標頭」頁籤新增,或在 web.config <system.webServer><httpProtocol><customHeaders> 設定,亦可在 Application_BeginRequest 動態加入。

移除洩露資訊的標頭

  • X-Powered-By:洩露技術棧。
  • Server:洩露 IIS 版本。
  • X-AspNet-Version:洩露 .NET 版本 (httpRuntime enableVersionHeader="false")。
  • X-AspNetMvc-Version:MVC 專案移除 (MvcHandler.DisableMvcResponseHeader = true)。

定期掃描回應標頭 (如 curl -I、SecurityHeaders.com),確保安全標頭生效、敏感標頭已移除。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved