← Cloudflare API Shield / api-shield / security / sequence-mitigation
Настройка блокировки последовательностей через API
Настройка блокировки последовательностей через API заключается в формировании объекта правила: нужно выбрать последовательность и задать тип правила и его действие.
{
"id": "d4909253-390f-4956-89fd-92a5b0cd86d8",
"title": "<RULE_TITLE>",
"kind": "allow",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0,
"last_updated": "2023-07-24T12:06:51.796286Z",
"created_at": "2023-07-24T12:06:51.796286Z"
}Это правило требует, чтобы запрос к конечной точке 0d9bf70c-92e1-4bb3-9411-34a3bcc59003 должен предшествовать запросу к конечной точке b704ab4d-5be0-46e0-9875-b2b3d1ab42f9.
В противном случае запрос к конечной точке b704ab4d-5be0-46e0-9875-b2b3d1ab42f9 блокируется.
Поля
Название поля |
Описание | Возможные значения | Пример |
|---|---|---|---|
id |
Непрозрачный идентификатор, обозначающий правило. | UUID | "d4909253-390f-4956-89fd-92a5b0cd86d8" |
title |
Строка, которая помогает идентифицировать правило. | Значение длиной от 1 до 50 символов | "Allow checkout sequence" |
kind |
Определяет семантику этого правила. Правила типа Block используют негативную модель безопасности и позволяют явно запретить последовательность. Правила типа Allow используют позитивную модель безопасности и запрещают всё, кроме настроенной последовательности. | block, allow |
"block" |
action |
Какое действие файрвола следует выполнить при срабатывании правила. | block,log |
"log" |
sequence |
Обозначает операции (из Endpoint Management), которые образуют последовательность для этого правила. Сейчас поддерживаются только последовательности длиной два. Первая операция это начальная конечная точка, вторая операция это завершающая конечная точка. | Массив с двумя действительными идентификаторами операций из Endpoint Management | ["0d9bf70c-92e1-4bb3-9411-34a3bcc59003", "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"] |
priority |
Обозначает приоритет этого правила относительно всех остальных правил. Правила с более высоким значением приоритета обрабатываются раньше правил с более низким значением. Если у двух правил одинаковый приоритет, они обрабатываются в порядке добавления. | Допустимое целое число | 10 |
last_updated |
Когда это правило было изменено в последний раз. | Строка даты | 2023-05-02T12:06:51.796286Z |
created_at |
Когда это правило было создано. | Строка даты | 2023-05-02T12:06:51.796286Z |
Найти ID операции конечной точки можно, экспортировав схему в Endpoint Management либо через API.
Список правил последовательностей
Используйте GET команда для получения списка правил.
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules"Добавление одного правила последовательности
Используйте POST команда для создания одного правила.
Это добавляет одно правило к уже существующим. С помощью параметра priority правило можно разместить между другими правилами, перед ними или после них.
В ответе будет отражено записанное правило с его ID. Если с правилом что-то не так, будет возвращено соответствующее сообщение об ошибке с json будет предоставлен путь, указывающий на проблему.
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules" \
--header "Content-Type: application/json" \
--data '{
"title": "string",
"kind": "block",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0
}'Добавление нескольких правил последовательностей
Используйте PUT команда для массового создания новых правил.
Это приведёт к перезаписи существующих правил: они будут заменены правилами, указанными в теле запроса. Если передать пустой массив, все правила будут удалены.
В ответе будут отражены записанные правила с их ID, а если с правилами что-то не так, будет возвращено соответствующее сообщение об ошибке с json будет предоставлен путь, указывающий на проблему.
curl --request PUT "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"title": "<RULE_TITLE>",
"kind": "block",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0
}
]
}'Удаление правила
Используйте DELETE команда с идентификатором правила для удаления правила.
curl --request DELETE "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules/d4909253-390f-4956-89fd-92a5b0cd86d8"