

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Application Load Balancer 的 HTTP 標頭修改
<a name="header-modification"></a>

Application Load Balancer 支援對請求和回應標頭進行 HTTP 標頭修改。無需更新應用程式程式碼，標頭修改可讓您進一步控制應用程式的流量和安全性。

若要啟用標頭修改，請參閱 [啟用標頭修改](enable-header-modification.md)。

## 重新命名 mTLS/TLS 標頭
<a name="rename-header"></a>

標頭重新命名功能可讓您設定 Application Load Balancer 產生並新增至請求的 mTLS 和 TLS 標頭名稱。

修改 HTTP 標頭的功能可讓您的 Application Load Balancer 輕鬆支援使用特定格式化請求和回應標頭的應用程式。


| 標頭 | Description | 
| --- | --- | 
| X-Amzn-Mtls-Clientcert-Serial-Number | 確保目標可以識別和驗證用戶端在 TLS 交握期間提供的特定憑證。 | 
| X-Amzn-Mtls-Clientcert-Issuer | 透過識別發出憑證的憑證授權單位，協助目標驗證和驗證用戶端憑證。 | 
| X-Amzn-Mtls-Clientcert-Subject | 提供目標有關用戶端憑證所發行實體的詳細資訊，這有助於在 mTLS 身分驗證期間進行識別、身分驗證、授權和記錄。 | 
| X-Amzn-Mtls-Clientcert-Validity | 允許目標驗證正在使用的用戶端憑證是否在其定義的有效期間內，確保憑證不會過期或過早使用。 | 
| X-Amzn-Mtls-Clientcert-Leaf | 提供 mTLS 交握中使用的用戶端憑證，允許伺服器驗證用戶端並驗證憑證鏈。這可確保連線安全且獲得授權。 | 
| X-Amzn-Mtls-Clientcert | 攜帶完整的用戶端憑證。允許目標驗證憑證的真實性、驗證憑證鏈，以及在 mTLS 交握程序期間驗證用戶端。 | 
| X-Amzn-TLS-Version | 指出用於連線的 TLS 通訊協定版本。它有助於判斷通訊的安全層級、疑難排解連線問題並確保合規性。 | 
| X-Amzn-TLS-Cipher-Suite | 指出用於保護 TLS 中連線的密碼編譯演算法組合。這可讓伺服器評估連線的安全性、協助進行相容性疑難排解，並確保符合安全政策。 | 

## 新增回應標頭
<a name="insert-header"></a>

您可以使用插入標頭，設定 Application Load Balancer 將安全相關的標頭新增至回應。透過這些屬性，您可以插入標頭，包括 HSTS、CHS 和 CSP。

根據預設，這些標頭為空白。發生這種情況時，Application Load Balancer 不會修改此回應標頭。

當您啟用回應標頭時，Application Load Balancer 會將具有設定值的標頭新增至所有回應。如果目標的回應包含 HTTP 回應標頭，負載平衡器會將標頭值更新為設定的值。否則，負載平衡器會將 HTTP 回應標頭新增至具有設定值的回應。


| 標頭 | Description | 
| --- | --- | 
| Strict-Transport-Security | 在指定的持續時間內，由瀏覽器強制執行僅限 HTTPS 的連線，協助防止man-in-the-middle攻擊、通訊協定降級和使用者錯誤。 可確保用戶端和目標之間的所有通訊都已加密。 | 
| Access-Control-Allow-Origin | 控制是否可以從不同的原始伺服器存取目標上的資源。這允許安全的跨來源互動，同時防止未經授權的存取。 | 
| Access-Control-Allow-Methods | 指定向目標提出跨來源請求時允許的 HTTP 方法。它提供控制哪些動作可以從不同的原始伺服器執行。 | 
| Access-Control-Allow-Headers | 指定哪些自訂或非簡單標頭可以包含在跨來源請求中。此標頭可讓目標控制來自不同原始伺服器的用戶端可以傳送哪些標頭。 | 
| Access-Control-Allow-Credentials | 指定用戶端是否應在跨來源請求中包含憑證，例如 Cookie、HTTP 身分驗證或用戶端憑證。 | 
| Access-Control-Expose-Headers | 允許目標指定用戶端可以在跨來源請求中存取哪些額外的回應標頭。 | 
| Access-Control-Max-Age | 定義瀏覽器可以快取預檢請求結果的時間長度，減少重複預檢檢查的需求。這有助於透過減少特定跨來源請求所需的 OPTIONS 請求數量來最佳化效能。 | 
| Content-Security-Policy | 透過控制指令碼、樣式、映像等資源，防止 XSS 等程式碼注入攻擊的安全功能可由網站載入和執行。 | 
| X-Content-Type-Options | 使用無嗅探指令， 可透過防止瀏覽器猜測資源的 MIME 類型來增強 Web 安全性。它可確保瀏覽器僅根據宣告的內容類型解譯內容 | 
| X-Frame-Options | 標頭安全機制，可透過控制網頁是否可以內嵌在框架中，協助防止點擊劫持攻擊。DENY 和 SAMEORIGIN 等值可確保內容不會內嵌在惡意或不受信任的網站。 | 

## 停用標頭
<a name="disable-header"></a>

使用停用標頭，您可以設定 Application Load Balancer 從回應中停用`server:awselb/2.0`標頭。這可減少伺服器特定資訊的暴露，同時為您的應用程式新增額外的保護層。

屬性名稱為 `routing.http.response.server.enabled`。可用的值為 `true`或 `false`。預設值為 `true`。

## 限制
<a name="header-modification-limits"></a>
+ 標頭值可包含下列字元
  + 英數字元：`a-z`、 `A-Z`和 `0-9`
  + 特殊字元： `_ :;.,\/'?!(){}[]@<>=-+*#&`|~^%`
+ 屬性的值大小不可超過 1K 位元組。
+ Elastic Load Balancing 會執行基本輸入驗證，以確認標頭值是否有效。不過，驗證無法確認特定標頭是否支援該值。
+ 為任何屬性設定空值會導致 Application Load Balancer 還原為預設行為。