← Документация WAF / detections / malicious-uploads
Примеры конфигурации Terraform
Следующие примеры конфигураций Terraform решают типичные сценарии управления, настройки и использования сканирования содержимого WAF.
Дополнительные сведения см. в документация Terraform Cloudflare provider ↗.
Если вы используете Cloudflare API, см. Типичные вызовы API.
Включение сканирования содержимого WAF
Используйте cloudflare_content_scanning ресурс, чтобы включить сканирование содержимого для зоны. Например:
resource "cloudflare_content_scanning" "zone_content_scanning_example" {
zone_id = var.cloudflare_zone_id
enabled = true
}Настройка пользовательского выражения сканирования
Используйте cloudflare_content_scanning_expression ресурс, чтобы добавить пользовательское выражение сканирования. Например:
resource "cloudflare_content_scanning_expression" "my_custom_scan_expression" {
zone_id = var.cloudflare_zone_id
payload = "lookup_json_string(http.request.body.raw, \"file\")"
}Подробнее см. в Пользовательские выражения сканирования.
Добавьте пользовательское правило для блокировки вредоносных загрузок
В этом примере добавляется пользовательское правило который блокирует запросы с одним или несколькими объекты содержимого считающихся вредоносными, с помощью одного из поля сканирования содержимого в выражении правила.
Чтобы использовать cf.waf.content_scan.has_malicious_obj поле необходимо включить сканирование содержимого.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:
Zone WAF Write
Настройте cloudflare_ruleset ↗ ресурс:
resource "cloudflare_ruleset" "zone_custom_firewall_malicious_uploads" {
zone_id = var.cloudflare_zone_id
name = "Phase entry point ruleset for custom rules in my zone"
description = ""
kind = "zone"
phase = "http_request_firewall_custom"
rules = [{
ref = "block_malicious_uploads"
description = "Block requests uploading malicious content objects"
expression = "(cf.waf.content_scan.has_malicious_obj and http.request.uri.path eq \"/upload.php\")"
action = "block"
}]
}resource "cloudflare_ruleset" "zone_custom_firewall_malicious_uploads" {
zone_id = var.cloudflare_zone_id
name = "Phase entry point ruleset for custom rules in my zone"
description = ""
kind = "zone"
phase = "http_request_firewall_custom"
rules {
ref = "block_malicious_uploads"
description = "Block requests uploading malicious content objects"
expression = "(cf.waf.content_scan.has_malicious_obj and http.request.uri.path eq \"/upload.php\")"
action = "block"
}
}Дополнительные ресурсы
Дополнительные примеры настройки Terraform см. в Настройка пользовательских правил WAF с помощью Terraform.