Anatomie d'une règle :

SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]

VARIABLES

les plus utilisées sont ARGS (paramètre de la requête), REQUEST_BODY ,REQUEST_HEADER, REQUEST_URI (contenu de la requête).

La liste complète des VARIABLES est disponible ICI.

 

OPERATOR (optionnel) :

Opérateurs de chaîne Description
@beginsWithCommence par
@containsContient
@endsWithFini par
@rxExpression régulière
@pmPermet de tester plusieurs valeurs
@streqChaîne égale à, ex : recherche de FR dans une base de Géolocalisation
@withinLa chaîne est
Opérateurs numérique Description
@eqEgale
@gePlus grand ou égale
@gtPlus grand que
@leInférieure ou égale
@ltInférieure )

D'autres opérateurs existent, comme la validation de schéma XML, d'encodage UTF8 ou URL, Géolocalisation, RBL, ...
La liste complète est disponible ICI

TRANSFORMATION_FUNCTIONS :

Les fonctions de transformations permettent de formater la chaîne avant son évaluation, par exemple mettre la chaîne en minuscule, supprimer les espaces, ou calculer le md5.
ICI vous trouverez la liste officielle des fonctions.

ACTIONS (optionnel) :

Il y a 5 types d'actions :

  • Disruptive actions : les actions perturbatrices/primaires ont un effet direct sur le devenir de la requête. Il ne peut en y avoir qu'une par règle.
  • Non-disruptive actions : les actions secondaires n'ont pas d'effet sur le processing des règles, on initialise des variables, on change leur contenu, ...
  • Flow actions : actions sur le flux.
  • Meta-data actions : actions qui permet d'ajouter des méga données.
  • Data actions : ce n'est pas vraiment une action mais des données pour d'autres actions.

Les différentes actions :
A la vue du nombre d'actions, il est préférable de voir la documentation officielle ICI