Web Application Firewall

Description
A web application firewall (WAF) 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 cross-site scripting (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 needs to be maintained as the application is modified.

A far more detailed description is available at Wikipedia.

Important selection criteria

 * Protection against OWASP top ten
 * Very few false positives (i.e., should NEVER disallow an authorized request)
 * Strength of default (out-of-the-box) defenses
 * Power and ease of learn mode
 * Types of vulnerabilities it can prevent
 * Detects disclosure and unauthorized content in outbound reply messages, such as credit-card and Social Security numbers
 * Both positive and negative security model support
 * Simplified and intuitive user interface
 * Cluster mode support
 * High performance (milliseconds latency)
 * Complete alerting, forensics, reporting capabilities
 * Web services\XML support
 * Brute force protection
 * Ability to active (block and log), passive (log only) and bypass the web traffic
 * 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 (e.g., emergency patches)
 * Form factor: software vs. hardware (hardware generally preferred)

You may also use OWASP Best Practices: Use of Web Application Firewalls to find out where and when to use a WAF. 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 full blown WAF, but it is a strong Java/J2EE input validation filter that can be put in front of your application.
 * NAXSI is a WAF for NGINX.

Well-known open source tools of this type

 * AQTronix - WebKnight
 * Trustwave SpiderLabs - ModSecurity
 * Qualys - Ironbee (A recent new project by Qualys led by Ivan Ristic, the original ModSecurity author)
 * QuickDefence-WAF (Nginx and Lua based first open source WAF, still in pre-alpha stage)