Production RAG & Vector Data ArchitecturePlaybook3 min readUpdated September 2026

What a WAF Actually Blocks, and What It Can't Touch

A web application firewall sits in front of your application and inspects incoming requests against a set of rules, blocking patterns associated with known attacks like SQL injection or cross-site scripting attempts. It's a genuinely useful layer. It's also frequently treated as a complete security solution, which leads to real application-layer vulnerabilities sitting unpatched behind a firewall that was never going to catch them in the first place.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

What a WAF reliably catches

Rule-based pattern matching is where a WAF earns its keep: known SQL injection syntax, common cross-site scripting payloads, requests that match signatures of previously identified attack tools, and basic rate-based abuse from a single source. These are real, common attack patterns, and blocking them at the network edge, before they even reach your application code, meaningfully reduces the volume of malicious traffic your application has to defend against on its own. That reduction alone can be worth the setup effort, since it frees your own logging and alerting from a constant stream of low-effort noise.

What it structurally can't catch

A WAF has no knowledge of your application's business logic, so it can't tell that a request is technically well-formed but does something it shouldn't, like a user manipulating a request to access another user's data through an authorization flaw, or an API being called in a sequence that violates a workflow rule. These are logic vulnerabilities, not pattern-matchable attack signatures, and no amount of WAF rule tuning closes that specific gap, because the request itself often looks completely legitimate from the outside.

Tuning rules without breaking real traffic

An aggressive rule set catches more attacks and also blocks more legitimate requests that happen to resemble an attack pattern, such as a support form that legitimately contains SQL-like text in a free-text field. Start new rules in a monitoring or log-only mode before switching them to actively block traffic, and review what they would have blocked over a real traffic period, so you catch false positives before they turn into real customers hitting a wall they don't understand. This staged rollout matters more than it might seem, since a single overly broad rule can silently reject a meaningful share of legitimate submissions for weeks before anyone notices.

Where a WAF fits in a layered approach

Treat a WAF as one layer among several, not the whole defense: input validation and parameterized queries in your own application code remain the actual fix for injection vulnerabilities, proper authorization checks are the actual fix for logic flaws, and the WAF is a layer that reduces the volume and variety of attack traffic your application has to be resilient against on its own. A vulnerability the WAF happens to catch today might slip past a slightly different attack variant tomorrow, so the underlying code still needs to be correct.

A layered approach pairs the firewall with these controls:

  • Use input validation and parameterized queries in your own code, since these are the actual fix for injection vulnerabilities that a WAF only filters at the edge.
  • Enforce authorization checks on every request for a specific record, because a well-formed request for someone else's data looks normal to a WAF.
  • Start new WAF rules in monitoring mode and review what they would have blocked before switching them to enforcement.
  • Review block logs regularly for real customer traffic being blocked, not only when someone complains.
  • Schedule a separate application security review for anything that handles sensitive data or authorization decisions.

A worked example: the vulnerability the WAF never saw

Say an API endpoint checks that a request includes a valid authentication token but forgets to check that the authenticated user actually owns the specific record they're requesting by ID. A request incrementing that ID to access someone else's data looks completely well-formed to a WAF, which has no concept of who owns what, and sails through every rule cleanly. The fix has nothing to do with firewall rules and everything to do with adding the missing authorization check in the application code itself, which is exactly the class of bug a WAF was never built to catch.

Where Taj weighs in on this pattern

Taj, MeetMyCTO's AI CTO, describes a WAF as a good return on a fairly small amount of setup effort, since it filters out a meaningful share of low-effort attack traffic before it ever touches your application. Taj's consistent caution to founders: don't let a green WAF dashboard stand in for an actual application security review, since the two cover almost entirely different classes of risk, and a clean firewall log says nothing about whether your authorization logic is correct.

Executive Capability Standard

What Good Looks Like

A well-used WAF blocks known attack patterns at the edge as one layer of a broader defense, with its rules tuned against real traffic to avoid false positives, while the application itself still carries proper input validation and authorization checks for what the WAF structurally can't see.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Understand exactly which attack categories your current WAF rule set covers and which ones it doesn't.
2. Do Manually:Manually review a sample of your WAF's recent blocked requests to check for false positives hitting real traffic.
3. Delegate:Give one team ownership of WAF rule tuning so changes go through a consistent, tested process instead of ad hoc edits during an incident.
4. Automate:Automate alerting on WAF rule changes and on spikes in blocked traffic, so an unusual pattern gets noticed quickly.
5. Buy:Use a managed WAF service with regularly updated rule sets rather than maintaining your own signature list against new attack patterns.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Frequently Asked Questions

Does a WAF replace the need for secure coding practices?

No. A WAF reduces the volume of known attack patterns reaching your application, but it has no visibility into your business logic, so authorization flaws, broken workflow assumptions, and other logic vulnerabilities pass through it unnoticed. Secure coding in the application itself remains the actual fix for that entire category.

How do we know if our WAF rules are blocking legitimate customers?

Review your WAF's block logs regularly, not just when a customer complains, and look for patterns of blocked requests coming from what looks like real traffic rather than an obvious attack tool. Running new rules in monitoring mode before enforcing them is the more reliable way to catch this before it affects anyone.

Should every application behind a WAF still get a separate security review?

Yes, particularly for anything handling sensitive data or authorization decisions. A WAF's protection is real but narrow, and a review focused on business logic and access control catches an entirely different class of issue than anything a firewall's pattern matching was ever designed to find.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides