你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure Web 应用程序防火墙配置自定义响应

本文介绍如何配置在 Azure Web 应用程序防火墙阻止请求时显示的自定义响应页面。

默认情况下,当 Azure Web 应用程序防火墙由于匹配的规则而阻止请求时,它将返回 403 状态代码,并显示消息“请求被阻止”。默认消息还包括跟踪引用字符串,后者用于链接到请求的日志条目。 你可以为用例配置自定义响应状态代码和带有参考字符串的自定义消息。

使用门户配置自定义响应状态代码和消息

可以在 Azure Web 应用程序防火墙门户上的“策略设置”下配置自定义响应状态代码和正文。

显示 Azure Web 应用程序防火墙策略设置的屏幕截图。

在前面的示例中,我们将响应代码保留为 403,并配置了一个简短的“请联系我们”消息,如下图所示:

显示自定义响应示例的屏幕截图。

“{{azure-ref}}”在响应正文中插入唯一引用字符串。 此值与 FrontDoorAccessLogFrontDoorWebApplicationFirewallLog 日志中的 TrackingReference 字段匹配。

“{{azure-ref}}”在响应正文中插入唯一引用字符串。 此值与 FrontdoorAccessLogFrontdoorWebApplicationFirewallLog 日志中的 TrackingReference 字段匹配。

使用 PowerShell 配置自定义响应状态代码和消息

按照以下步骤使用 PowerShell 配置自定义响应状态代码和消息。

设置 PowerShell 环境

Azure PowerShell 提供一组可以使用 Azure 资源管理器模型管理 Azure 资源的 cmdlet。

可以在本地计算机上安装 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 应用程序防火墙