{ "id":"/axapi/v3/waf/template/{name}", "type":"object", "node-type":"list", "title":"template", "partition-visibility":"shared", "description":"Manage WAF template configuration", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"WAF Template Name", "optional":false }, "csp":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Insert HTTP header Content-Security-Policy if necessary", "optional":true }, "csp-value":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"CSP header value, e.g., \"script-src 'none'\"", "optional":true }, "csp-insert-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'insert-if-not-exist': Only insert the header when it does not exist; 'insert-always': Always insert the header even when there is a header with the same name; ", "enum":[ "insert-if-not-exist", "insert-always" ], "optional":true }, "http-redirect":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "not-list":[ "http-resp-200", "reset-conn", "http-resp-403" ], "description":"Send HTTP redirect response (302 Found) to specifed URL (URL to redirect to when denying request)", "optional":true }, "http-resp-200":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "http-redirect", "reset-conn", "http-resp-403" ], "description":"Send HTTP response with status code 200 OK", "optional":true }, "resp-url-200":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Response content to send client when denying request", "optional":true }, "reset-conn":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "http-redirect", "http-resp-200", "http-resp-403" ], "description":"Reset the client connection", "optional":true }, "http-resp-403":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "http-redirect", "http-resp-200", "reset-conn" ], "description":"Send HTTP response with status code 403 Forbidden (default)", "optional":true }, "resp-url-403":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Response content to send client when denying request", "optional":true }, "deploy-mode":{ "type":"string", "format":"enum", "default":"active", "partition-visibility":"shared", "description":"'active': Deploy WAF in active (blocking) mode; 'passive': Deploy WAF in passive (log-only) mode; 'learning': Deploy WAF in learning mode; ", "enum":[ "active", "passive", "learning" ], "optional":true }, "log-succ-reqs":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Log successful waf requests", "optional":true }, "learn-pr":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable per-request logs for WAF learning", "optional":true }, "parent":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"inherit from parent template", "optional":true }, "parent-template-waf":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":128, "partition-visibility":"shared", "$ref":"/axapi/v3/waf/template", "description":"WAF template (WAF Config name)", "optional":true }, "pcre-match-limit":{ "type":"number", "format":"number", "minimum":1000, "maximum":1500000, "default":30000, "partition-visibility":"shared", "description":"Maximum number of matches allowed (default 30000)", "optional":true }, "pcre-match-recursion-limit":{ "type":"number", "format":"number", "minimum":100, "maximum":150000, "default":5000, "partition-visibility":"shared", "description":"Maximum levels of recursive allowed (default 5000)", "optional":true }, "soap-format-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check XML document for SOAP format compliance", "optional":true }, "logging":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":128, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/logging", "description":"Logging template (Logging Config name)", "optional":true }, "wsdl-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "not":"wsdl-resp-val-file", "description":"Specify name of WSDL file for verifying XML body contents", "optional":true }, "wsdl-resp-val-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "not":"wsdl-file", "description":"Specify name of WSDL file for verifying XML body contents", "optional":true }, "xml-schema-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "not":"xml-schema-resp-val-file", "description":"Specify name of XML-Schema file for verifying XML body contents", "optional":true }, "xml-schema-resp-val-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "not":"xml-schema-file", "description":"Specify name of XML-Schema file for verifying XML body contents", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "brute-force-protection":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/brute-force-protection", "properties":{ "challenge-action-cookie":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use Set-Cookie to determine if client allows cookies" }, "challenge-action-javascript":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Add JavaScript to response to test if client allows JavaScript" }, "challenge-action-captcha":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Initiate a Captcha to verify client can respond" }, "brute-force-challenge-limit":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":2, "partition-visibility":"shared", "description":"Maximum brute-force events before sending challenge (default 2) (Maximum brute-force events before locking out client (default 2))" }, "enable-disable-action":{ "type":"string", "format":"enum", "default":"disable", "partition-visibility":"shared", "description":"'enable': Enable brute force protections; 'disable': Disable brute force protections (default); ", "enum":[ "enable", "disable" ] }, "brute-force-global":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Brute-force triggers apply globally instead of per-client (Apply brute-force triggers globally)" }, "brute-force-lockout-limit":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":5, "partition-visibility":"shared", "description":"Maximum brute-force events before locking out client (default 5)" }, "brute-force-lockout-period":{ "type":"number", "format":"number", "minimum":0, "maximum":1800, "default":600, "partition-visibility":"shared", "description":"Number of seconds client should be locked out (default 600)" }, "brute-force-resp-codes":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Trigger brute-force check on HTTP response code" }, "brute-force-resp-codes-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "brute-force-resp-headers":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Trigger brute-force check on HTTP response header names" }, "brute-force-resp-headers-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "brute-force-resp-string":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Trigger brute-force check on HTTP response reason phrase" }, "brute-force-resp-string-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "brute-force-test-period":{ "type":"number", "format":"number", "minimum":0, "maximum":600, "default":60, "partition-visibility":"shared", "description":"Number of seconds for brute-force event counting (default 60)" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "http-limit-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/http-limit-check", "properties":{ "disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable all checks for HTTP limit" }, "max-content-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max length of content (Maximum length of content allowed)" }, "max-content-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":2147483647, "default":4096, "partition-visibility":"shared", "description":"Max length of content (default 4096) (Maximum length of content allowed (default 4096))" }, "max-cookie-header-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max Cookie header length allowed in request (Maximum length of cookie header allowed)" }, "max-cookie-header-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max Cookie header length allowed in request (default 4096) (Maximum length of cookie header allowed (default 4096))" }, "max-cookie-name-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max Cookie name length allowed in request (Maximum length of cookie name allowed)" }, "max-cookie-name-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":64, "partition-visibility":"shared", "description":"Max Cookie name length allowed in request (default 64) (Maximum length of cookie name allowed (default 64))" }, "max-cookie-value-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max Cookie value length allowed in request (Maximum length of cookie value allowed)" }, "max-cookie-value-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max Cookie value length allowed in request (default 4096) (Maximum length of cookie value allowed (default 4096))" }, "max-cookies":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max Cookies allowed in request (Maximum number of cookie allowed)" }, "max-cookies-value":{ "type":"number", "format":"number", "minimum":0, "maximum":1023, "default":20, "partition-visibility":"shared", "description":"Max Cookies allowed in request (default 20) (Maximum number of cookie allowed (default 20))" }, "max-cookies-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Total Cookies length allowed in request (Maximum length of all cookies in request)" }, "max-cookies-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Total Cookies length allowed in request (default 4096) (Maximum length of all cookies in request (default 4096))" }, "max-data-parse":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max data to be parsed for Web Application Firewall" }, "max-data-parse-value":{ "type":"number", "format":"number", "minimum":0, "maximum":2097152, "default":262144, "partition-visibility":"shared", "description":"Max data to be parsed for Web Application Firewall (default 262144)" }, "max-entities":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Maximum number of MIME entities allowed in request" }, "max-entities-value":{ "type":"number", "format":"number", "minimum":0, "maximum":512, "default":10, "partition-visibility":"shared", "description":"Maximum number of MIME entities allowed in request (default 10)" }, "max-header-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max header length allowed in request (Maximum length of header allowed)" }, "max-header-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max header length allowed in request (default 4096) (Maximum length of header allowed (default 4096))" }, "max-header-name-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max header name length allowed in request (Maximum length of header name allowed)" }, "max-header-name-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":64, "partition-visibility":"shared", "description":"Max header name length allowed in request (default 64) (Maximum length of header name allowed (default 64))" }, "max-header-value-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max header value length allowed in request (Maximum length of header value allowed)" }, "max-header-value-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max header value length allowed in request (default 4096) (Maximum length of header value allowed (default 4096))" }, "max-headers":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Total number of headers allowed in request (Maximum number of headers in request)" }, "max-headers-value":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "default":64, "partition-visibility":"shared", "description":"Total number of headers allowed in request (default 64) (Maximum number of headers in request (default 64))" }, "max-headers-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Total headers length allowed in request (Maximum length of all headers in request)" }, "max-headers-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Total headers length allowed in request (default 4096) (Maximum length of all headers in request (default 4096))" }, "max-param-name-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max query/POST parameter name length allowed in request (Maximum length of query/POST parameter names allowed)" }, "max-param-name-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":256, "partition-visibility":"shared", "description":"Max query/POST parameter name length allowed in request (default 256) (Maximum length of query/POST parameter names allowed (default 256))" }, "max-param-value-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max query/POST parameter value length allowed in request (Maximum length of query/POST parameter value allowed)" }, "max-param-value-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max query/POST parameter value length allowed in request (default 4096) (Maximum length of query/POST parameter value allowed (default 4096))" }, "max-params":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Total query/POST parameters allowed in request (Maximum number of query/POST parameters in request)" }, "max-params-value":{ "type":"number", "format":"number", "minimum":0, "maximum":1024, "default":64, "partition-visibility":"shared", "description":"Total query/POST parameters allowed in request (default 64) (Maximum number of query/POST parameters in request (default 64))" }, "max-params-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Total query/POST parameters length allowed in request (Maximum length of all params in request)" }, "max-params-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Total query/POST parameters length allowed in request (default 4096) (Maximum length of all params in request (default 4096))" }, "max-post-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Maximum content length allowed in POST request" }, "max-post-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":2147483647, "default":20480, "partition-visibility":"shared", "description":"Maximum content length allowed in POST request (default 20480)" }, "max-query-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max length of query string (Maximum length of query string allowed)" }, "max-query-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max length of query string (default 4096) (Maximum length of query string allowed (default 4096))" }, "max-request-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max length of request (Maximum length of request allowed)" }, "max-request-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":2147483647, "default":20480, "partition-visibility":"shared", "description":"Max length of request (default 20480) (Maximum length of request allowed (default 20480))" }, "max-request-line-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max length of request line (Maximum length of request line)" }, "max-request-line-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max length of request line (default 4096) (Maximum length of request line (default 4096))" }, "max-url-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Max length of url (Maximum length of url allowed)" }, "max-url-length-value":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":4096, "partition-visibility":"shared", "description":"Max length of url (default 4096) (Maximum length of url allowed (default 4096))" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "http-protocol-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/http-protocol-check", "properties":{ "disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable all checks for HTTP protocol compliance" }, "allowed-headers":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable allowed-headers check (default disabled)" }, "allowed-headers-list":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1023, "default":"Host Referer User-Agent Accept Accept-Encoding Accept-Language Accept-Language Authorization Cache-Control Content-Length", "partition-visibility":"shared", "description":"Allowed HTTP headers. Default \"Host Referer User-Agent Accept Accept-Encoding ...\" (see docs for full list) (Allowed HTTP headers (default \"Host Referer User-Agent Accept Accept-Encoding ...\" (see docs for full list)))" }, "allowed-methods":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable allowed-methods check (default disabled)" }, "allowed-methods-list":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1023, "default":"GET POST", "partition-visibility":"shared", "description":"List of allowed HTTP methods. Default is \"GET POST\". (List of HTTP methods allowed (default \"GET POST\"))" }, "allowed-versions":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable allowed-versions check (default disabled)" }, "allowed-versions-list":{ "type":"string", "format":"enum-list", "default":"1.0,1.1,2", "partition-visibility":"shared", "description":"List of allowed HTTP versions (default \"1.0 1.1 2\")", "enum":[ "0.9", "1.0", "1.1", "2" ] }, "bad-multipart-request":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for bad multipart/form-data request body" }, "body-without-content-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for Body request without Content-Type header in request" }, "get-with-content":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for GET request with Content-Length headers in request" }, "head-with-content":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for HEAD request with Content-Length headers in request" }, "host-header-with-ip":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for Host header with IP address" }, "invalid-url-encoding":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for invalid URL encoding in request" }, "malformed-content-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for malformed content-length in request" }, "malformed-header":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for malformed HTTP header" }, "malformed-parameter":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for malformed HTTP query/POST parameter" }, "malformed-request":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for malformed HTTP request" }, "malformed-request-line":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for malformed HTTP request line" }, "missing-header-value":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for missing header value in request" }, "missing-host-header":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for missing Host header in HTTP/1.1 request" }, "multiple-content-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for multiple Content-Length headers in request" }, "post-with-0-content":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for POST request with Content-Length 0" }, "post-without-content":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for POST request without Content-Length/Chunked Encoding headers in request" }, "post-without-content-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for POST request without Content-Type header in request" }, "non-ssl-cookie-prefix":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for Bad __Secure- or __Host- Cookie Name prefixes in non-ssl request" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "cookie-security":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/cookie-security", "properties":{ "enable-disable-action":{ "type":"string", "format":"enum", "default":"enable", "partition-visibility":"shared", "description":"'enable': Enable cookie security (default); 'disable': Disable cookie security; ", "enum":[ "enable", "disable" ] }, "allow-missing-cookie":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow requests with missing cookies" }, "allow-unrecognized-cookie":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow requests with unrecognized cookies" }, "cookie-policy":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "cookie-policy-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Name of cookie" }, "cookie-policy-allow":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow the cookie" }, "cookie-policy-disallow":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Block the cookie" }, "optional":true } } ] }, "set-cookie-policy":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "set-cookie-policy-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Name of cookie" }, "set-cookie-policy-allow":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow the cookie" }, "set-cookie-policy-disallow":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Block the cookie" }, "set-cookie-policy-http-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Add HttpOnly flag to cookie" }, "set-cookie-policy-secure":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Add Secure flag to cookie" }, "set-cookie-policy-samesite":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'none': none; 'lax': lax; 'strict': strict; ", "enum":[ "none", "lax", "strict" ] }, "set-cookie-policy-sign":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"set-cookie-policy-encrypt", "description":"Sign cookies" }, "set-cookie-policy-secret":{ "type":"string", "format":"password", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Cookie encryption secret" }, "set-cookie-policy-secret-encrypted":{ "type":"encrypted", "format":"encrypted", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED secret string)" }, "optional":true } } ] }, "tamper-protection-http-only":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Add HttpOnly flag to cookies not in set-cookie-policy list (default on)" }, "tamper-protection-secure":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Add Secure flag to cookies not in set-cookie-policy list (default on)" }, "tamper-protection-samesite":{ "type":"string", "format":"enum", "default":"none", "partition-visibility":"shared", "description":"'none': none; 'lax': lax; 'strict': strict; ", "enum":[ "none", "lax", "strict" ] }, "tamper-protection-secret":{ "type":"string", "format":"password", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Cookie encryption secret" }, "tamper-protection-secret-encrypted":{ "type":"encrypted", "format":"encrypted", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED secret string)" }, "tamper-protection-grace-period":{ "type":"number", "format":"number", "minimum":0, "maximum":43200, "default":120, "partition-visibility":"shared", "description":"Allow unrecognized cookies for a period of time after cookie encryption being applied (default 120 minutes)" }, "tamper-protection-session-cookie-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Only encrypt session cookies" }, "tamper-protection-sign":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"tamper-protection-encrypt", "description":"Sign cookies" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "evasion-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/evasion-check", "properties":{ "apache-whitespace":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for whitespace characters in URL" }, "decode-entities":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Decode entities in internal url (default on)" }, "decode-escaped-chars":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Decode escaped characters such as \\r \\n \\\" \\xXX \\u00YY in internal url (default on)" }, "decode-plus-chars":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Decode '+' as space in URL (default on)" }, "decode-unicode-chars":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Check for evasion attempt using %u encoding of Unicode chars to bypass (default on)" }, "dir-traversal":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Check for directory traversal attempt (default on)" }, "high-ascii-bytes":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Check for evasion attempt using ASCII bytes with values" }, "invalid-hex-encoding":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for evasion attempt using invalid hex characters (not in 0-9,a-f)" }, "multiple-encoding-levels":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for evasion attempt using multiple levels of encoding" }, "multiple-slashes":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check for evasion attempt using multiple slashes/backslashes" }, "max-levels":{ "type":"number", "format":"number", "minimum":0, "maximum":64, "default":2, "partition-visibility":"shared", "description":"Max levels of encoding allowed in request (default 2)" }, "remove-comments":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Remove comments from internal url" }, "remove-spaces":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Remove spaces from internal url (default on)" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "data-leak-prevention":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/data-leak-prevention", "properties":{ "ccn-mask":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Mask credit card numbers in response" }, "ssn-mask":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Mask US Social Security numbers in response" }, "pcre-mask":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Mask matched PCRE pattern in response" }, "keep-start":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "partition-visibility":"shared", "description":"Number of unmasked characters at the beginning (default: 0)" }, "keep-end":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "partition-visibility":"shared", "description":"Number of unmasked characters at the end (default: 0)" }, "mask":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1, "partition-visibility":"shared", "description":"Character to mask the matched pattern (default: X)" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "form-protection":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/form-protection", "properties":{ "enable-disable-action":{ "type":"string", "format":"enum", "default":"enable", "partition-visibility":"shared", "description":"'enable': Enable web form protections (default); 'disable': Disable web form protections; ", "enum":[ "enable", "disable" ] }, "csrf-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Tag the form to protect against Cross-site Request Forgery" }, "field-consistency-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Form input consistency check" }, "password-check-non-masked":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check forms that have a password field with a textual type, resulting in this field not being masked" }, "password-check-non-ssl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check forms that has a password field if the form is not sent over an SSL connection" }, "password-check-autocomplete":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check to protect against server-generated form which contain password fields that allow autocomplete" }, "form-check-non-ssl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check whether SSL is used for request with forms" }, "form-check-caching":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable caching for response with forms" }, "form-check-non-post":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check whether POST is used for request with forms" }, "form-check-request-non-post":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check whether POST is used for request with forms" }, "form-check-response-non-post":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check whether form method POST is used for response with forms" }, "form-check-response-non-post-sanitize":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Change form method GET to POST (Use with caution: make sure server application still work)" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "response-cloaking":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/response-cloaking", "properties":{ "filter-headers":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Removes web server's identifying headers" }, "hide-status-codes":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Hides response status codes that are not allowed (default 4xx, 5xx)" }, "hide-status-codes-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "request-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/request-check", "properties":{ "bot-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check User-Agent for known bots" }, "bot-check-policy-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "command-injection-check":{ "type":"string", "format":"enum-list", "partition-visibility":"shared", "description":"Check to protect against command injection attacks", "enum":[ "cookies", "headers", "form-body", "uri-query" ] }, "command-injection-check-policy-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy command injection list file" }, "redirect-whitelist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check Redirect URL against list of previously learned redirects" }, "referer-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check referer to protect against CSRF attacks" }, "referer-domain-list":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "not":"referer-domain-list-only", "description":"List of referer domains allowed" }, "referer-safe-url":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":" Safe URL to redirect to if referer is missing" }, "referer-domain-list-only":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":255, "partition-visibility":"shared", "not":"referer-domain-list", "description":"List of referer domains allowed" }, "session-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable session checking via session cookie" }, "lifetime":{ "type":"number", "format":"number", "minimum":1, "maximum":1440, "default":10, "partition-visibility":"shared", "description":"Session lifetime in minutes (default 10)" }, "sqlia-check":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'reject': Reject requests with SQLIA patterns; ", "enum":[ "reject" ] }, "sqlia-check-policy-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "url-blacklist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"specify name of WAF policy list file to blacklist" }, "waf-blacklist-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "url-whitelist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"specify name of WAF policy list file to whitelist" }, "waf-whitelist-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "url-learned-list":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check URL against list of previously learned URLs" }, "xss-check":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'reject': Reject requests with bad cookies; ", "enum":[ "reject" ] }, "xss-check-policy-file":{ "type":"string", "format":"string", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Name of WAF policy list file" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "violation-log-mask":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/violation-log-mask", "properties":{ "query-param-name-equal-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'equals': Mask the query value if the query name equals to the string; ", "enum":[ "equals" ] }, "query-param-name-value":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1031, "partition-visibility":"shared", "description":"The list of Query parameter names" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "json-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/json-check", "properties":{ "format-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check HTTP body for JSON format compliance" }, "max-array-values":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":256, "partition-visibility":"shared", "description":"Maximum number of values in an array in a JSON request body (default 256) (Maximum number of values in a JSON array (default 256))" }, "max-depth":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":16, "partition-visibility":"shared", "description":"Maximum recursion depth in a value in a JSON requesnt body (default 16) (Maximum recursion depth in a JSON value (default 16))" }, "max-object-members":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":256, "partition-visibility":"shared", "description":"Maximum number of members in an object in a JSON request body (default 256) (Maximum number of members in a JSON object (default 256))" }, "max-string-length":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":64, "partition-visibility":"shared", "description":"Maximum length of a string in a JSON request body (default 64) (Maximum length of a JSON string (default 64))" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "xml-check":{ "type":"object", "$ref":"/axapi/v3/waf/template/{name}/xml-check", "properties":{ "disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable all checks for XML limit" }, "max-attr":{ "type":"number", "format":"number", "minimum":0, "maximum":256, "default":256, "partition-visibility":"shared", "description":"Maximum number of attributes of an XML element (default 256)" }, "max-attr-name-len":{ "type":"number", "format":"number", "minimum":0, "maximum":2048, "default":128, "partition-visibility":"shared", "description":"Maximum length of an attribute name (default 128)" }, "max-attr-value-len":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":128, "partition-visibility":"shared", "description":"Maximum length of an attribute text value (default 128)" }, "max-cdata-len":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":65535, "partition-visibility":"shared", "description":"Maximum length of an CDATA section of an element (default 65535)" }, "max-elem":{ "type":"number", "format":"number", "minimum":0, "maximum":8192, "default":1024, "partition-visibility":"shared", "description":"Maximum number of XML elements (default 1024)" }, "max-elem-child":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":1024, "partition-visibility":"shared", "description":"Maximum number of children of an XML element (default 1024)" }, "max-elem-depth":{ "type":"number", "format":"number", "minimum":0, "maximum":4096, "default":256, "partition-visibility":"shared", "description":"Maximum recursion level for element definition (default 256)" }, "max-elem-name-len":{ "type":"number", "format":"number", "minimum":0, "maximum":65535, "default":128, "partition-visibility":"shared", "description":"Maximum length for an element name (default 128)" }, "max-entity-decl":{ "type":"number", "format":"number", "minimum":0, "maximum":1024, "default":1024, "partition-visibility":"shared", "description":"Maximum number of entity declarations (default 1024)" }, "max-entity-depth":{ "type":"number", "format":"number", "minimum":0, "maximum":32, "default":32, "partition-visibility":"shared", "description":"Maximum depth of entities (default 32)" }, "max-entity-exp":{ "type":"number", "format":"number", "minimum":0, "maximum":1024, "default":1024, "partition-visibility":"shared", "description":"Maximum number of entity expansions (default 1024)" }, "max-entity-exp-depth":{ "type":"number", "format":"number", "minimum":0, "maximum":32, "default":32, "partition-visibility":"shared", "description":"Maximum nested depth of entity expansions (default 32)" }, "max-namespace":{ "type":"number", "format":"number", "minimum":0, "maximum":256, "default":16, "partition-visibility":"shared", "description":"Maximum number of namespace declarations (default 16)" }, "max-namespace-uri-len":{ "type":"number", "format":"number", "minimum":0, "maximum":1024, "default":256, "partition-visibility":"shared", "description":"Maximum length of a namespace URI (default 256)" }, "format":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check HTTP body for XML format compliance" }, "sqlia":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check XML data against SQLIA policy" }, "xss":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check XML data against XSS policy" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "name" ], "required":[ "name" ] }