---
id: "waf"
type: "kind"
category: "security"
url: "https://localhost:3000/catalogue/kinds/waf"
---

# Web application firewall

A layer-7 rule engine that inspects and blocks HTTP requests.

| | |
|---|---|
| Category | Security |
| Properties | 6 |
| Components | 14 |
| Rules | 0 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `botProtection` | boolean | — | no | — |
| `customRuleCount` | integer | — | no | — |
| `managed` | boolean | — | no | false |
| `managedRuleSet` | string | — | no | — |
| `mode` | enum | `detection`, `prevention`, `off` | no | — |
| `rateLimiting` | boolean | — | no | — |

## Rules for this kind · 0

No rule selects this kind or its category.

## Components · 14

### vendor-neutral

- [Generic web application firewall](https://localhost:3000/catalogue/components/waf.md) `waf` — the kind itself

### alibabacloud

- [Web Application Firewall](https://localhost:3000/catalogue/components/alibaba-waf.md) `alibaba-waf` — 3 defaults

### aws

- [AWS WAF web ACL](https://localhost:3000/catalogue/components/aws-waf.md) `aws-waf` — 4 defaults
- [AWS WAF Classic](https://localhost:3000/catalogue/components/aws-waf-classic.md) `aws-waf-classic` — 4 defaults

### azure

- [Azure Web Application Firewall](https://localhost:3000/catalogue/components/azure-web-application-firewall.md) `azure-web-application-firewall` — 4 defaults

### cloudflare

- [Firewall for AI](https://localhost:3000/catalogue/components/cloudflare-firewall-for-ai.md) `cloudflare-firewall-for-ai` — 4 defaults
- [Cloudflare WAF](https://localhost:3000/catalogue/components/cloudflare-waf.md) `cloudflare-waf` — 4 defaults

### default

- [Coraza](https://localhost:3000/catalogue/components/coraza.md) `coraza` — 4 defaults
- [Imperva Application Security](https://localhost:3000/catalogue/components/imperva.md) `imperva` — 4 defaults
- [ModSecurity](https://localhost:3000/catalogue/components/modsecurity.md) `modsecurity` — 4 defaults
- [NAXSI](https://localhost:3000/catalogue/components/naxsi.md) `naxsi` — 4 defaults

### gcp

- [Google Cloud Armor](https://localhost:3000/catalogue/components/google-cloud-armor.md) `google-cloud-armor` — 2 defaults
- [reCAPTCHA Enterprise](https://localhost:3000/catalogue/components/google-recaptcha-enterprise.md) `google-recaptcha-enterprise` — 3 defaults

### oci

- [Web Application Firewall](https://localhost:3000/catalogue/components/oci-waf.md) `oci-waf` — 4 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Operates on request content rather than addresses and ports, so it holds a managed rule set and a detection/prevention mode a rule reads directly. mode has no default because a WAF left in detection is exactly what a rule should catch.
schemaVersion: "1"
type: "kind"
id: "waf"
category: "security"
properties:
  mode:
    type: "enum"
    values: ["detection", "prevention", "off"]
  managedRuleSet:
    type: "string"
  customRuleCount:
    type: "integer"
  botProtection:
    type: "boolean"
  rateLimiting:
    type: "boolean"
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/waf
