設定 Azure Web 應用程式防火牆的自訂回應

本文說明如何在 Azure Web 應用程式防火牆封鎖要求時設定自訂回應頁面。

根據預設,當 Azure Web 應用程式防火牆因為相符的規則而封鎖要求時,將會傳回具有「要求遭到封鎖」訊息的 403 狀態碼。預設訊息也包含追蹤參考字串,可用來連結至要求的記錄專案。 您可以為使用案例設定自訂回應狀態碼和具有參考字串的自訂訊息。

使用入口網站設定自訂回應狀態碼和訊息

您可以在 Azure Web 應用程式防火牆入口網站的 [原則設定] 底下設定自訂回應狀態碼和本文。

Screenshot that shows Azure Web Application Firewall Policy settings.

在上述範例中,我們會將回應碼保留為 403,並設定簡短的「請與我們連絡」訊息,如下圖所示:

Screenshot that shows a custom response example.

「{{azure-ref}}」 會在回應本文中插入唯一的參考字串。 值符合 FrontDoorAccessLogFrontDoorWebApplicationFirewallLog 記錄中的 TrackingReference 欄位。

「{{azure-ref}}」 會在回應本文中插入唯一的參考字串。 值符合 FrontdoorAccessLogFrontdoorWebApplicationFirewallLog 記錄中的 TrackingReference 欄位。

使用 PowerShell 設定自訂回應狀態碼和訊息

請遵循下列步驟,使用 PowerShell 設定自訂回應狀態碼和訊息。

設定 PowerShell 環境

Azure PowerShell 提供了一組 Cmdlet,它們會使用 Azure Resource Manager 模型來管理 Azure 資源。

您可以在本機電腦上安裝 Azure PowerShell,並將其用於任何 PowerShell 工作階段。 請遵循頁面上的指示,使用 Azure 認證進行登入。 安裝 Az PowerShell 模組。

使用互動式登入對話方塊連線至 Azure

Connect-AzAccount
Install-Module -Name Az

請確定您已安裝目前的 PowerShellGet 版本。 執行下列命令,並重新開啟 PowerShell。

Install-Module PowerShellGet -Force -AllowClobber

安裝 Az.FrontDoor 模組

Install-Module -Name Az.FrontDoor

建立資源群組

在 Azure 中,您可以將相關資源配置到資源群組。 我們在此使用 New-AzResourceGroup 來建立資源群組。

New-AzResourceGroup -Name myResourceGroupWAF

使用自訂回應建立新的 WAF 原則

下列範例示範如何使用 New-AzFrontDoorWafPolicy 建立新的 Web 應用程式防火牆 (WAF) 原則,其中包含設為 405 的自訂回應狀態碼,以及「您已遭封鎖」訊息。

# WAF policy setting
New-AzFrontDoorWafPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-EnabledState enabled `
-Mode Detection `
-CustomBlockResponseStatusCode 405 `
-CustomBlockResponseBody "<html><head><title>You are blocked.</title></head><body></body></html>"

使用 Update-AzFrontDoorFireWallPolicy 修改現有 WAF 原則的自訂回應碼或回應本文設定。

# modify WAF response code
Update-AzFrontDoorFireWallPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-EnabledState enabled `
-Mode Detection `
-CustomBlockResponseStatusCode 403
# modify WAF response body
Update-AzFrontDoorFireWallPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-CustomBlockResponseBody "<html><head><title>Forbidden</title></head><body>{{azure-ref}}</body></html>"

下一步

深入了解 Azure Front Door 上的 Azure Web 應用程式防火牆