← Документация WAF / detections / malicious-uploads
Примеры конфигурации Terraform
Следующие примеры конфигурации Terraform охватывают типичные сценарии управления, настройки и использования сканирования содержимого WAF.
Дополнительную информацию см. в Документация провайдера Cloudflare для Terraform ↗.
Если вы используете 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.