To make sure that a Web application firewall will address your PCI DSS compliance needs, you should compare its...
capabilities with those recommended in the Information Supplement: Requirement 6.6 Code Reviews and Application Firewalls Clarified, issued by the PCI Security Standards Council.
As for critical features, it is obviously important for the WAF to inspect and handle Web page content such as HTML, Dynamic HTML (DHTML), and cascading style sheets (CSS), as well as the protocols that your application uses, such as HTTP and HTTPS.
Also, check how quickly the vendor adopted new protocols in the past. Review their development and support policy to determine if they will support custom protocols or protect a set range of application protocols. In addition, a WAF must be able to inspect Web services messages, typically SOAP and XML.
Ask the Web application firewall vendor about their processes for auto-updating and applying dynamic signatures. This kind of review will help you assess their help services and technical support.
Of course, ask about how much additional, specific features cost as well. For example, some applications may require FIPS hardware key store support. A WAF vendor may support this requirement but at a dramatically higher price.
For more on Web application firewall selection and deployment
Understanding your Web application firewall (WAF) product options
Comparing Web application firewall (WAF) security features
Web application firewall implementation: Software vs. hardware
How to deploy a Web application firewall (WAF)
Web application firewall (WAF) management
As you follow through on the list of PCI requirements, take the time to understand the technical approaches and depth of treatment that each Web application firewall uses to provide coverage of one or more security areas. For example, can you whitelist data types and ranges and create rules combining both whitelists and blacklists? How strong is the WAF against attack on itself? For example, it should run on a hardened OS, probably with components running in a non-privileged and closed runtime environment. If the product's security isn't rock solid, you should probably end the discussion right there.