默认情况下,当 Azure Front Door Web 应用程序防火墙(WAF)由于匹配的规则而阻止请求时,它将返回一个 403 状态代码,其中包含消息“请求被阻止”。默认消息还包括用于链接到请求 的日志条目 的跟踪引用字符串。
本文介绍如何使用 Azure 门户、PowerShell 或 Azure CLI 为用例配置自定义响应状态代码和包含引用字符串的自定义消息。
先决条件
若要自定义响应状态代码和正文,请执行以下步骤:
在 Azure 门户中转到“Front Door WAF 策略”。
在 “设置”下,选择“ 策略设置”。
分别在 “阻止响应状态代码 ”和 “阻止响应正文 ”框中输入自定义响应状态代码和响应正文。
选择“保存”。
若要自定义响应状态代码和正文,请使用 Update-AzFrontDoorWafPolicy cmdlet。
# Update WAF policy settings to customize response body and status code
Update-AzFrontDoorWafPolicy `
-Name 'myWAFPolicy' `
-ResourceGroupName 'myResourceGroup' `
-RequestBodyCheck 'Enabled' `
-RedirectUrl 'https://docs.azure.cn/web-application-firewall/' `
-CustomBlockResponseStatusCode '403' `
-CustomBlockResponseBody '<html><head><title>WAF Demo</title></head><body><p><h1><strong>WAF Custom Response Page</strong></h1></p><p>Please contact us with this information:<br>{{azure-ref}}</p></body></html>'
若要自定义响应状态代码和正文,请使用 az network front-door waf-policy update 命令。
# Update WAF policy settings to customize response body and status code
az network front-door waf-policy update \
--name 'myWAFPolicy' \
--resource-group 'myResourceGroup' \
--request-body-check 'Enabled' \
--redirect-url 'https://docs.azure.cn/web-application-firewall/' \
--custom-block-response-status-code '403' \
--custom-block-response-body 'PGh0bWw+PGhlYWQ+PHRpdGxlPldBRiBEZW1vPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+PGgxPjxzdHJvbmc+V0FGIEN1c3RvbSBSZXNwb25zZSBQYWdlPC9zdHJvbmc+PC9oMT48L3A+PHA+UGxlYXNlIGNvbnRhY3QgdXMgd2l0aCB0aGlzIGluZm9ybWF0aW9uOjxicj57e2F6dXJlLXJlZn19PC9wPjwvYm9keT48L2h0bWw+'
注释
参数的值 --custom-block-response-body
必须是 base64 编码的字符串。
在前面的示例中,响应代码保留为 403,其中包含一条自定义消息:“请与我们联系,了解此信息:”。
注释
{{azure-ref}}
在响应正文中插入唯一引用字符串。 该值与日志中的 FrontDoorAccessLog
FrontDoorWebApplicationFirewallLog
TrackingReference 字段匹配。
重要
如果将块响应正文留空,WAF 将返回正常 WAF 块的 403 禁止 响应和速率限制块 的 429 请求过多 。
后续步骤