Web Application Firewall

Description
A web application firewall is an appliance, server plugin, or filter that applies a set of rules to an HTTP conversation. Generally, these rules cover common attacks such as XSS and SQL Injection. By customizing the rules to your application, many attacks can be identified and blocked. The effort to perform this customization can be significant and will need to maintained as the application is modified.

A far more detailed description is available at http://en.wikipedia.org/wiki/Application_firewall

Important Selection Criteria

 * No False Positives (i.e., must NEVER dissallow an authorized request)
 * Strength of Default (Out of the Box) Defenses
 * Power and Ease of Learn Mode
 * Types of Vulnerabilities it can prevent
 * Ability to keep individual users constrained to exactly what they have seen in the current session
 * Ability to be configured to prevent ANY specific problem (i.e., Emergency Patches)
 * Form Factor: Software vs. Hardware (Hardware generally preferred)

You may also find the Web Application Firewall Evaluation Criteria useful for evaluating the performance and other characteristics of a WAF.

OWASP Tools Of This Type
The OWASP Stinger Project is not a fullblown WAF, but it is a strong Java/J2EE input validation filter that can be put in front of your application.

Well Known Open Source Tools Of This Type
ModSecurity

Commercial Tools from OWASP Members Of This Type
F5's TrafficShield

Other Well Known Commercial Tools Of This Type

 * Citrix - Appication Firewall
 * NetContinuum - Application Firewall
 * Breach - WebDefend
 * Imperva - SecureSphere™ Web Application Firewall