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
@beginsWith Commence par
@contains Contient
@endsWith Fini par
@rx Expression régulière
@pm Permet de tester plusieurs valeurs
@streq Chaîne égale à, ex : recherche de FR dans une base de Géolocalisation
@within La chaîne est
Opérateurs numérique Description
@eq Egale
@ge Plus grand ou égale
@gt Plus grand que
@le Inférieure ou égale
@lt Infé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