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.