← Cloudflare Ruleset Engine / ruleset-engine / managed-rulesets / override-examples
Включение только правил Joomla
Используйте Rulesets API чтобы настроить выполнение управляемого набора правил и переопределить его поведение. По умолчанию включённые правила выполняют действия, заданные издателем управляемого набора правил. В этом примере переопределения используются для того, чтобы включить только правила с определённым тегом.
Выполните следующие шаги, чтобы настроить выполнение управляемого набора правил с двумя переопределениями, которые включают только правила с тегом joomla.
- Добавьте правило к входному набору правил фазы, который выполняет управляемый набор правил.
- Настройка переопределения набора правил которое отключает все правила в управляемом наборе правил.
- Настройте переопределение тега, которое включает только правила с заданным тегом.
Переопределения тегов имеют приоритет над переопределениями набора правил. Включаются только правила с указанным тегом, все остальные правила отключаются.
Пример 1
В этом примере Cloudflare Managed Ruleset развёртывается в фазе с включёнными только правилами Joomla. name, kind, а также phase поля опускаются из запроса, так как они неизменяемы.
Пример: включение только правил Joomla с помощью переопределений категорий на уровне зоны
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"enabled": false,
"categories": [
{
"category": "joomla",
"action": "block",
"enabled": true
}
]
}
}
}
]
}'"id": "<MANAGED_RULESET_ID>"добавляет правило в набор правил фазы, которое применяет Cloudflare Managed Ruleset к запросам для указанной зоны ($ZONE_ID)."enabled": falseзадаёт переопределение на уровне набора правил, которое отключает все правила в управляемом наборе правил."categories": [{"category": "joomla", "action": "block", "enabled": true}]задаёт переопределение на уровне тега, которое включает правила Joomla и устанавливает для них действиеblock.
Пример: включение только правил Joomla с помощью переопределений категорий на уровне аккаунта
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"enabled": false,
"categories": [
{
"category": "joomla",
"action": "block",
"enabled": true
}
]
}
}
}
]
}'"id": "<MANAGED_RULESET_ID>"добавляет правило в набор правил фазы, которое применяет Cloudflare Managed Ruleset к запросам дляexample.com."enabled": falseзадаёт переопределение на уровне набора правил, которое отключает все правила в управляемом наборе правил."categories": [{"category": "joomla", "action": "block", "enabled": true}]задаёт переопределение на уровне тега, которое включает правила Joomla и устанавливает для них действиеblock.
Вы можете добавить к одному правилу несколько переопределений категории.
Пример 2
В этом примере к правилу, которое выполняет управляемый набор правил, добавляются два переопределения (<MANAGED_RULESET_ID>) в http_request_firewall_managed фазы. Обратите внимание, что name, kind, а также phase поля опускаются из запроса, так как они неизменяемы.
Пример: добавление нескольких переопределений категорий на уровне зоны
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"enabled": false,
"categories": [
{
"category": "joomla",
"action": "log",
"enabled": true
},
{
"category": "wordpress",
"enabled": false
}
]
}
}
}
]
}'Пример: добавление нескольких переопределений категорий на уровне аккаунта
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"enabled": false,
"categories": [
{
"category": "joomla",
"action": "log",
"enabled": true
},
{
"category": "wordpress",
"enabled": false
}
]
}
}
}
]
}'Порядок переопределений в наборе правил определяет, включены или отключены правила в развёрнутом управляемом наборе правил. Переопределения, расположенные ниже в списке, имеют приоритет над более ранними.
Рассмотрим четыре правила из управляемого набора правил в приведённом выше коде с разными комбинациями category теги. В следующей таблице показано состояние правил после применения переопределений.
| Правило в управляемом наборе правил | Теги | Статус правила после переопределений |
|---|---|---|
| ManagedRule1 | drupal, dos |
Отключено |
| ManagedRule2 | drupal, dos, joomla |
Включено |
| ManagedRule3 | dos, joomla, wordpress |
Отключено |
| ManagedRule4 | drupal, wordpress |
Отключено |
| ManagedRule5 | (без тегов) | Отключено |