An XML firewall is an application layer firewall that specifically defends XML-based applications against a wide variety of XML message and parser level attacks. XML firewalls are generally implemented as proxies due to the requirement that incoming and outgoing messages must be inspected for vulnerabilities before being passed to the application or client.
XML firewalls are designed to address familiar Web-based attacks that can be transported via XML, such as SQL injection and cross-site scripting (XSS). They are primarily geared toward detecting and preventing XML specific attacks such as extremely large messages, highly nested elements, coercive parsing, recursive parsing, schema and WSDL poisoning, and routing based attacks.
XML firewalls improve the security of XML-based applications by preventing attacks that are likely to cause a service outage were they to be consumed by a Web application server. They remove the need for highly duplicated security-focused code within applications that can degrade performance.