Product Documentation

Top-Level Protections

Oct 12, 2015

Four of the application firewall protections are especially effective against common types of Web attacks, and are therefore more commonly used than any of the others. They are:

  • HTML Cross-Site Scripting. Examines requests and responses for scripts that attempt to access or modify content on a different Web site than the one on which the script is located. When this check finds such a script, it either renders the script harmless before forwarding the request or response to its destination, or it blocks the connection.

  • HTML SQL Injection. Examines requests that contain form field data for attempts to inject SQL commands into an SQL database. When this check detects injected SQL code, it either blocks the request or renders the injected SQL code harmless before forwarding the request to the Web server.

    Note: If both of the following conditions apply to your configuration, you should make certain that your Application Firewall is correctly configured:
    • If you enable the HTML Cross-Site Scripting check or the HTML SQL Injection check (or both), and
    • Your protected Web sites accept file uploads or contain Web forms that can contain large POST body data.

    For more information about configuring the Application Firewall to handle this case, see "Configuring the Application Firewall."

  • Buffer Overflow. Examines requests to detect attempts to cause a buffer overflow on the Web server.
  • Cookie Consistency. Examines cookies returned with user requests to verify that they match the cookies your Web server set for that user. If a modified cookie is found, it is stripped from the request before the request is forwarded to the Web server.

The Buffer Overflow check is simple; you can usually enable blocking for it immediately. The other three top-level checks are considerably more complex and require configuration before you can safely use them to block traffic. Citrix strongly recommends that, rather than attempting to configure these checks manually, you enable the learning feature and allow it to generate the necessary exceptions.