# HAProxy WAF ACL rules
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 0
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 1
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @rx ^.*$
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i !@rx (?:URLENCODED|MULTIPART|XML|JSON)
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 1
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i !@rx (?:URLENCODED|MULTIPART|XML|JSON)
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @eq 100
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @rx ^[a-f]*([0-9])[a-f]*([0-9])
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i !@lt %{tx.sampling_percentage}
http-request deny if block_INITIALIZATION
acl block_INITIALIZATION hdr_sub(User-Agent) -i @lt %{tx.blocking_paranoia_level}
http-request deny if block_INITIALIZATION
acl block_LFI hdr_sub(User-Agent) -i @lt 1
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 1
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @rx (?i)(?:[/x5c]|%(?:2(?:f|5(?:2f|5c|c(?:1%259c|0%25af))|%46)|5c|c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|(?:bg%q|(?:e|f(?:8%8)?0%8)0%80%a)f|u(?:221[5-6]|EFC8|F025|002f)|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|1u)|0x(?:2f|5c))(?:.(?:%0[0-1]|?)?|?.?|%(?:2(?:(?:5(?:2|c0%25a))?e|%45)|c0(?:.|%[25-6ae-f]e)|u(?:(?:ff0|002)e|2024)|%32(?:%(?:%6|4)5|E)|(?:e|f(?:(?:8|c%80)%8)?0%8)0%80%ae)|0x2e){2,3}(?:[/x5c]|%(?:2(?:f|5(?:2f|5c|c(?:1%259c|0%25af))|%46)|5c|c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|(?:bg%q|(?:e|f(?:8%8)?0%8)0%80%a)f|u(?:221[5-6]|EFC8|F025|002f)|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|1u)|0x(?:2f|5c))
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @rx (?:(?:^|[x5c/;]).{2,3}[x5c/;]|[x5c/;].{2,3}(?:[x5c/;]|$))
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @pmFromFile lfi-os-files.data
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @pmFromFile restricted-files.data
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 2
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 2
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @pmFromFile lfi-os-files.data
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 3
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 3
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 4
http-request deny if block_LFI
acl block_LFI hdr_sub(User-Agent) -i @lt 4
http-request deny if block_LFI
acl block_DETECTION hdr_sub(User-Agent) -i @lt 1
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 1
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @pmFromFile scanners-user-agents.data
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 2
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 2
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 3
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 3
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 4
http-request deny if block_DETECTION
acl block_DETECTION hdr_sub(User-Agent) -i @lt 4
http-request deny if block_DETECTION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 4
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 4
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 4
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge 4
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge %{tx.inbound_anomaly_score_threshold}
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @eq 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @ge %{tx.inbound_anomaly_score_threshold}
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 1
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 2
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 3
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 4
http-request deny if block_EVALUATION
acl block_EVALUATION hdr_sub(User-Agent) -i @lt 4
http-request deny if block_EVALUATION
acl block_PHP hdr_sub(User-Agent) -i @lt 1
http-request deny if block_PHP
acl block_PHP hdr_sub(User-Agent) -i @lt 1
http-request deny if block_PHP
acl block_PHP hdr_sub(User-Agent) -i @rx (?:(?:[^x]|x[^m]|xm[^l]|xml[^s]|xml$|$)|
http-request deny if block_PHP
acl block_PHP hdr_sub(User-Agent) -i @rx (?:((?:.+)(?:["'][-0-9A-Z_a-z]+["'])?(.+|[^)]*string[^)]*)[sv"'--.0-9A-[]_a-{}]+([^)]*)|(?:[[0-9]+]|{[0-9]+}|$[^(-),.-/;x5c]+|["'][-0-9A-Zx5c_a-z]+["'])(.+))(?:;|$)?
http-request deny if block_PHP
acl block_PHP hdr_sub(User-Agent) -i @lt 4
http-request deny if block_PHP
acl block_PHP hdr_sub(User-Agent) -i @lt 4
http-request deny if block_PHP
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 1
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 1
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i !@within %{tx.allowed_methods}
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 2
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 2
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 3
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 3
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 4
http-request deny if block_ENFORCEMENT
acl block_ENFORCEMENT hdr_sub(User-Agent) -i @lt 4
http-request deny if block_ENFORCEMENT
acl block_ATTACK hdr_sub(User-Agent) -i !@eq 0
http-request deny if block_ATTACK
acl block_ATTACK hdr_sub(User-Agent) -i !@within |%{tx.allowed_request_content_type_charset}|
http-request deny if block_ATTACK
acl block_ATTACK hdr_sub(User-Agent) -i @rx ^content-types*:s*(.*)$
http-request deny if block_ATTACK
acl block_ATTACK hdr_sub(User-Agent) -i !@rx ^(?:(?:*|[^!-"(-),/:-?[-]{}]+)/(?:*|[^!-"(-),/:-?[-]{}]+)|*)(?:[sv]*;[sv]*(?:charset[sv]*=[sv]*"?(?:iso-8859-15?|utf-8|windows-1252)b"?|(?:[^sv -"(-),/:-?[-]c{}]|c(?:[^!-"(-),/:-?[-]h{}]|h(?:[^!-"(-),/:-?[-]a{}]|a(?:[^!-"(-),/:-?[-]r{}]|r(?:[^!-"(-),/:-?[-]s{}]|s(?:[^!-"(-),/:-?[-]e{}]|e[^!-"(-),/:-?[-]t{}]))))))[^!-"(-),/:-?[-]{}]*[sv]*=[sv]*[^!(-),/:-?[-]{}]+);?)*(?:[sv]*,[sv]*(?:(?:*|[^!-"(-),/:-?[-]{}]+)/(?:*|[^!-"(-),/:-?[-]{}]+)|*)(?:[sv]*;[sv]*(?:charset[sv]*=[sv]*"?(?:iso-8859-15?|utf-8|windows-1252)b"?|(?:[^sv -"(-),/:-?[-]c{}]|c(?:[^!-"(-),/:-?[-]h{}]|h(?:[^!-"(-),/:-?[-]a{}]|a(?:[^!-"(-),/:-?[-]r{}]|r(?:[^!-"(-),/:-?[-]s{}]|s(?:[^!-"(-),/:-?[-]e{}]|e[^!-"(-),/:-?[-]t{}]))))))[^!-"(-),/:-?[-]{}]*[sv]*=[sv]*[^!(-),/:-?[-]{}]+);?)*)*$
http-request deny if block_ATTACK
acl block_ATTACK hdr_sub(User-Agent) -i @rx content-transfer-encoding:(.*)
http-request deny if block_ATTACK
acl block_SQL hdr_sub(User-Agent) -i @lt 1
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 1
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i !@pmFromFile sql-errors.data
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:JET Database Engine|Access Database Engine|[Microsoft][ODBC Microsoft Access Driver])
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:ORA-[0-9][0-9][0-9][0-9]|java.sql.SQLException|Oracle error|Oracle.*Driver|Warning.*oci_.*|Warning.*ora_.*)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:DB2 SQL error:|[IBM][CLI Driver][DB2/6000]|CLI Driver.*DB2|DB2 SQL error|db2_w+()
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:[DM_QUERY_E_SYNTAX]|has occurred in the vicinity of:)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)Dynamic SQL Error
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)Exception (?:condition )?d+. Transaction rollback.
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)org.hsqldb.jdbc
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:An illegal character has been found in the statement|com.informix.jdbc|Exception.*Informix)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:Warning.*ingres_|Ingres SQLSTATE|IngresW.*Driver)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:Warning: ibase_|Unexpected end of command in statement)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i:SQL error.*POS[0-9]+.*|Warning.*maxdb.*)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)(?:System.Data.OleDb.OleDbException|[Microsoft][ODBC SQL Server Driver]|[Macromedia][SQLServer JDBC Driver]|[SqlException|System.Data.SqlClient.SqlException|Unclosed quotation mark after the character string|'80040e14'|mssql_query()|Microsoft OLE DB Provider for ODBC Drivers|Microsoft OLE DB Provider for SQL Server|Incorrect syntax near|Sintaxis incorrecta cerca de|Syntax error in string in query expression|Procedure or function .* expects parameter|Unclosed quotation mark before the character string|Syntax error .* in query expression|Data type mismatch in criteria expression.|ADODB.Field (0x800A0BCD)|the used select statements have different number of columns|OLE DB.*SQL Server|Warning.*mssql_.*|Driver.*SQL[ _-]*Server|SQL Server.*Driver|SQL Server.*[0-9a-fA-F]{8}|Exception.*WSystem.Data.SqlClient.|Conversion failed when converting the varchar value .*? to data type int.)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)(?:supplied argument is not a valid |SQL syntax.*)MySQL|Column count doesn't match(?: value count at row)?|mysql_fetch_array()|on MySQL result index|You have an error in your SQL syntax(?:;| near)|MyS(?:QL server version for the right syntax to use|qlClient.)|[MySQL][ODBC|(?:Table '[^']+' doesn't exis|valid MySQL resul)t|Warning.{1,10}mysql_(?:[(-)_a-z]{1,26})?|(?:ERROR [0-9]{4} ([0-9a-z]{5})|XPATH syntax error):
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)P(?:ostgreSQL(?: query failed:|.{1,20}ERROR)|G::[a-z]*Error)|pg_(?:query|exec)() [:|Warning.{1,20}bpg_.*|valid PostgreSQL result|Npgsql.|Supplied argument is not a valid PostgreSQL .*? resource|(?:Unable to connect to PostgreSQL serv|invalid input syntax for integ)er
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)(?:Warning.*sqlite_.*|Warning.*SQLite3::|SQLite/JDBCDriver|SQLite.Exception|System.Data.SQLite.SQLiteException)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @rx (?i)(?:Sybase message:|Warning.{2,20}sybase|Sybase.*Server message.*)
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 2
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 2
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 3
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 3
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 4
http-request deny if block_SQL
acl block_SQL hdr_sub(User-Agent) -i @lt 4
http-request deny if block_SQL
acl block_GENERIC hdr_sub(User-Agent) -i @lt 1
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 1
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx _(?:$$ND_FUNC$$_|_js_function)|(?:beval|new[sv]+Function[sv]*)(|String.fromCharCode|function(){|this.constructor|module.exports=|([sv]*[^0-9A-Z_a-z]child_process[^0-9A-Z_a-z][sv]*)|process(?:.(?:(?:a(?:ccess|ppendfile|rgv|vailability)|c(?:aveats|h(?:mod|own)|(?:los|opyfil)e|p|reate(?:read|write)stream)|ex(?:ec(?:file)?|ists)|f(?:ch(?:mod|own)|data(?:sync)?|s(?:tat|ync)|utimes)|inodes|l(?:chmod|ink|stat|utimes)|mkd(?:ir|temp)|open(?:dir)?|r(?:e(?:ad(?:dir|file|link|v)?|name)|m)|s(?:pawn(?:file)?|tat|ymlink)|truncate|u(?:n(?:link|watchfile)|times)|w(?:atchfile|rite(?:file|v)?))(?:sync)?(?:.call)?(|binding|constructor|env|global|main(?:Module)?|process|require)|[["'`](?:(?:a(?:ccess|ppendfile|rgv|vailability)|c(?:aveats|h(?:mod|own)|(?:los|opyfil)e|p|reate(?:read|write)stream)|ex(?:ec(?:file)?|ists)|f(?:ch(?:mod|own)|data(?:sync)?|s(?:tat|ync)|utimes)|inodes|l(?:chmod|ink|stat|utimes)|mkd(?:ir|temp)|open(?:dir)?|r(?:e(?:ad(?:dir|file|link|v)?|name)|m)|s(?:pawn(?:file)?|tat|ymlink)|truncate|u(?:n(?:link|watchfile)|times)|w(?:atchfile|rite(?:file|v)?))(?:sync)?|binding|constructor|env|global|main(?:Module)?|process|require)["'`]])|(?:binding|constructor|env|global|main(?:Module)?|process|require)[|console(?:.(?:debug|error|info|trace|warn)(?:.call)?(|[["'`](?:debug|error|info|trace|warn)["'`]])|require(?:.(?:resolve(?:.call)?(|main|extensions|cache)|[["'`](?:(?:resolv|cach)e|main|extensions)["'`]])
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx (?:close|exists|fork|(?:ope|spaw)n|re(?:ad|quire)|w(?:atch|rite))[sv]*(
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @pmFromFile ssrf.data
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx (?:__proto__|constructors*(?:.|[)s*prototype)
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx Process[sv]*.[sv]*spawn[sv]*(
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx while[sv]*([sv(]*(?:!+(?:false|null|undefined|NaN|[+-]?0|"{2}|'{2}|`{2})|(?:!!)*(?:(?:t(?:rue|his)|[+-]?(?:Infinity|[1-9][0-9]*)|new [A-Za-z][0-9A-Z_a-z]*|window|String|(?:Boolea|Functio)n|Object|Array)b|{.*}|[.*]|"[^"]+"|'[^']+'|`[^`]+`)).*)
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx ^data:(?:(?:*|[^!-"(-),/:-?[-]{}]+)/(?:*|[^!-"(-),/:-?[-]{}]+)|*)(?:[sv]*;[sv]*(?:charset[sv]*=[sv]*"?(?:iso-8859-15?|utf-8|windows-1252)b"?|(?:[^sv -"(-),/:-?[-]c{}]|c(?:[^!-"(-),/:-?[-]h{}]|h(?:[^!-"(-),/:-?[-]a{}]|a(?:[^!-"(-),/:-?[-]r{}]|r(?:[^!-"(-),/:-?[-]s{}]|s(?:[^!-"(-),/:-?[-]e{}]|e[^!-"(-),/:-?[-]t{}]))))))[^!-"(-),/:-?[-]{}]*[sv]*=[sv]*[^!(-),/:-?[-]{}]+);?)*(?:[sv]*,[sv]*(?:(?:*|[^!-"(-),/:-?[-]{}]+)/(?:*|[^!-"(-),/:-?[-]{}]+)|*)(?:[sv]*;[sv]*(?:charset[sv]*=[sv]*"?(?:iso-8859-15?|utf-8|windows-1252)b"?|(?:[^sv -"(-),/:-?[-]c{}]|c(?:[^!-"(-),/:-?[-]h{}]|h(?:[^!-"(-),/:-?[-]a{}]|a(?:[^!-"(-),/:-?[-]r{}]|r(?:[^!-"(-),/:-?[-]s{}]|s(?:[^!-"(-),/:-?[-]e{}]|e[^!-"(-),/:-?[-]t{}]))))))[^!-"(-),/:-?[-]{}]*[sv]*=[sv]*[^!(-),/:-?[-]{}]+);?)*)*
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 2
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 2
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx (?i)((?:a(?:cap|f[ps]|ttachment)|b(?:eshare|itcoin|lob)|c(?:a(?:llto|p)|id|vs|ompress.(?:zlib|bzip2))|d(?:a(?:v|ta)|ict|n(?:s|tp))|e(?:d2k|xpect)|f(?:(?:ee)?d|i(?:le|nger|sh)|tps?)|g(?:it|o(?:pher)?|lob)|h(?:323|ttps?)|i(?:ax|cap|(?:ma|p)ps?|rc[6s]?)|ja(?:bbe)?r|l(?:dap[is]?|ocal_file)|m(?:a(?:ilto|ven)|ms|umble)|n(?:e(?:tdoc|ws)|fs|ntps?)|ogg|p(?:aparazzi|h(?:ar|p)|op(?:2|3s?)|r(?:es|oxy)|syc)|r(?:mi|sync|tm(?:f?p)?|ar)|s(?:3|ftp|ips?|m(?:[bs]|tps?)|n(?:ews|mp)|sh(?:2(?:.(?:s(?:hell|(?:ft|c)p)|exec|tunnel))?)?|vn(?:+ssh)?)|t(?:e(?:amspeak|lnet)|ftp|urns?)|u(?:dp|nreal|t2004)|v(?:entrilo|iew-source|nc)|w(?:ebcal|ss?)|x(?:mpp|ri)|zip)://(?:[0-9]{10}|(?:0x[0-9a-f]{2}.){3}0x[0-9a-f]{2}|0x(?:[0-9a-f]{8}|[0-9a-f]{16})|(?:0{1,4}[0-9]{1,3}.){3}0{1,4}[0-9]{1,3}|[0-9]{1,3}.(?:[0-9]{1,3}.[0-9]{5}|[0-9]{8})|(?:x5cx5c[-0-9a-z].?_?)+|[[0-:a-f]+(?:[.0-9]+|%[0-9A-Z_a-z]+)?]|[a-z][--.0-9A-Z_a-z]{1,255}:[0-9]{1,5}(?:#?[sv]*&?@(?:(?:[0-9]{1,3}.){3}[0-9]{1,3}|[a-z][--.0-9A-Z_a-z]{1,255}):[0-9]{1,5}/?)+|[.0-9]{0,11}(?:xe2(?:x91[xa0-xbf]|x92[x80-xbf]|x93[x80-xa9xab-xbf])|xe3x80x82)+))
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx [s*constructors*]
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @rx @{.*}
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 3
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 3
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 4
http-request deny if block_GENERIC
acl block_GENERIC hdr_sub(User-Agent) -i @lt 4
http-request deny if block_GENERIC
acl block_RFI hdr_sub(User-Agent) -i @lt 1
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 1
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @rx ^(?i:file|ftps?|https?)://(?:d{1,3}.d{1,3}.d{1,3}.d{1,3})
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @rx (?i)(?:bincludes*([^)]*|mosConfig_absolute_path|_CONF[path]|_SERVER[DOCUMENT_ROOT]|GALLERY_BASEDIR|path[docroot]|appserv_root|config[root_dir])=(?:file|ftps?|https?)://
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @rx ^(?i:file|ftps?|https?).*??+$
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 2
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 2
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @rx (?i)(?:(?:url|jar):)?(?:a(?:cap|f[ps]|ttachment)|b(?:eshare|itcoin|lob)|c(?:a(?:llto|p)|id|vs|ompress.(?:zlib|bzip2))|d(?:a(?:v|ta)|ict|n(?:s|tp))|e(?:d2k|xpect)|f(?:(?:ee)?d|i(?:le|nger|sh)|tps?)|g(?:it|o(?:pher)?|lob)|h(?:323|ttps?)|i(?:ax|cap|(?:ma|p)ps?|rc[6s]?)|ja(?:bbe)?r|l(?:dap[is]?|ocal_file)|m(?:a(?:ilto|ven)|ms|umble)|n(?:e(?:tdoc|ws)|fs|ntps?)|ogg|p(?:aparazzi|h(?:ar|p)|op(?:2|3s?)|r(?:es|oxy)|syc)|r(?:mi|sync|tm(?:f?p)?|ar)|s(?:3|ftp|ips?|m(?:[bs]|tps?)|n(?:ews|mp)|sh(?:2(?:.(?:s(?:hell|(?:ft|c)p)|exec|tunnel))?)?|vn(?:+ssh)?)|t(?:e(?:amspeak|lnet)|ftp|urns?)|u(?:dp|nreal|t2004)|v(?:entrilo|iew-source|nc)|w(?:ebcal|ss?)|x(?:mpp|ri)|zip)://(?:[^@]+@)?([^/]*)
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i !@endsWith .%{request_headers.host}
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @rx (?i)(?:(?:url|jar):)?(?:a(?:cap|f[ps]|ttachment)|b(?:eshare|itcoin|lob)|c(?:a(?:llto|p)|id|vs|ompress.(?:zlib|bzip2))|d(?:a(?:v|ta)|ict|n(?:s|tp))|e(?:d2k|xpect)|f(?:(?:ee)?d|i(?:le|nger|sh)|tps?)|g(?:it|o(?:pher)?|lob)|h(?:323|ttps?)|i(?:ax|cap|(?:ma|p)ps?|rc[6s]?)|ja(?:bbe)?r|l(?:dap[is]?|ocal_file)|m(?:a(?:ilto|ven)|ms|umble)|n(?:e(?:tdoc|ws)|fs|ntps?)|ogg|p(?:aparazzi|h(?:ar|p)|op(?:2|3s?)|r(?:es|oxy)|syc)|r(?:mi|sync|tm(?:f?p)?|ar)|s(?:3|ftp|ips?|m(?:[bs]|tps?)|n(?:ews|mp)|sh(?:2(?:.(?:s(?:hell|(?:ft|c)p)|exec|tunnel))?)?|vn(?:+ssh)?)|t(?:e(?:amspeak|lnet)|ftp|urns?)|u(?:dp|nreal|t2004)|v(?:entrilo|iew-source|nc)|w(?:ebcal|ss?)|x(?:mpp|ri)|zip)://(?:[^@]+@)?([^/]*)
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i !@endsWith .%{request_headers.host}
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 3
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 3
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 4
http-request deny if block_RFI
acl block_RFI hdr_sub(User-Agent) -i @lt 4
http-request deny if block_RFI
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 1
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 1
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @rx (?:<(?:TITLE>Index of.*?Index of.*?Index of|>[To Parent Directory][Aa]>
)
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @rx ^#!s?/
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 2
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 2
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @rx ^5d{2}$
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 3
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 3
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 4
http-request deny if block_LEAKAGES
acl block_LEAKAGES hdr_sub(User-Agent) -i @lt 4
http-request deny if block_LEAKAGES
acl block_XSS hdr_sub(User-Agent) -i @lt 1
http-request deny if block_XSS
acl block_XSS hdr_sub(User-Agent) -i @lt 1
http-request deny if block_XSS
acl block_XSS hdr_sub(User-Agent) -i !@validateByteRange 20, 45-47, 48-57, 65-90, 95, 97-122
http-request deny if block_XSS
acl block_XSS hdr_sub(User-Agent) -i @detectXSS
http-request deny if block_XSS
acl block_XSS hdr_sub(User-Agent) -i @rx (?i)