По умолчанию, когда брандмауэр веб-приложений Azure Front Door (WAF) блокирует запрос из-за соответствующего правила, он возвращает код состояния 403 с сообщением "Запрос заблокирован". Сообщение по умолчанию также содержит строку ссылки на отслеживание, которая используется для ссылки на записи журнала для запроса.
В этой статье вы узнаете, как настроить пользовательский код состояния ответа и пользовательское сообщение со ссылкой для вашего варианта использования с помощью портала Azure, PowerShell или Azure CLI.
Предпосылки
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure PowerShell.
Шаги, описанные в этой статье, позволяют выполнять командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы запустить командлеты в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портала Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Для этой статьи требуется модуль Azure PowerShell. При локальном запуске PowerShell войдите в Azure с помощью командлета Connect-AzAccount .
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure CLI
Действия, описанные в этой статье, выполняют команды Azure CLI интерактивно в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портала Azure.
Вы также можете установить Azure CLI локально для выполнения команд. Для этой статьи требуется Azure CLI версии 2.67.0 или более поздней и расширение Front Door. Выполните команду az --version, чтобы узнать установленную версию. При локальном запуске Azure CLI войдите в Azure с помощью команды az login .
Чтобы настроить код состояния ответа и текст, выполните следующие действия.
Перейдите к вашей политике WAF Front Door в портале Azure.
В разделе "Параметры" выберите параметры политики.
Введите пользовательский код состояния ответа и текст ответа в поля Код состояния блокировки и Блок ответа соответственно.
Замечание
Функции проверки JavaScript и CAPTCHA доступны только в политиках WAF на уровне Azure Front Door Premium.
Нажмите кнопку "Сохранить".
Чтобы настроить код состояния ответа и текст, используйте командлет Update-AzFrontDoorWafPolicy .
# Update WAF policy settings to customize response body and status code
Update-AzFrontDoorWafPolicy `
-Name 'myWAFPolicy' `
-ResourceGroupName 'myResourceGroup' `
-RequestBodyCheck 'Enabled' `
-RedirectUrl 'https://learn.microsoft.com/en-us/azure/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://learn.microsoft.com/en-us/azure/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}}
вставляет уникальную строку ссылки в текст отклика. Это значение соответствует полю отслеживаемой ссылки (TrackingReference) в журналах FrontDoorAccessLog
и FrontDoorWebApplicationFirewallLog
.
Это важно
Если вы оставляете текст ответа блока пустым, WAF возвращает ответ 403 Запрещено для обычных блоков WAF и 429 Слишком много запросов для блоков ограничения скорости.
Следующий шаг