Le tableau suivant répertorie les sections disponibles pour la classe Isapi.
Note 1
Une requête HTTP peut être représentée comme suit : http://www.myserver.com/ {url}?{query}. Dans ce document, nous faisons référence à {url} comme la partie « url » de la requête HTTP et à {query} comme la partie « query » de celle-ci. Grâce à cette convention de nommage, la section « url » correspondra à {url} et la section « query » à {query}.
Par exemple, la règle suivante se déclenchera si la requête HTTP http:// www.myserver.com/search/abc.exe?subject=wildlife&environment=ocean est reçue par IIS :
Rule {
Class Isapi
Id 4001
level 1
url { Include "*abc*" }
time { Include "*" }
application { Include "*"}
user_name { Include "*" }
directives -c -d isapi:request
}
Cette règle se déclenche car {url}=/search/abc.exe, ce qui correspond à la valeur de la section « url » (c.-à-d. abc).
Note 2
Avant que la correspondance ne s’effectue, les sections « url » et « query » sont décodées et normalisées afin qu’il soit impossible de compléter des requêtes par du code ou des séquences d’échappement.
Note 3
Une longueur maximum peut être définie pour les sections « url » et « query ». En ajoutant « ;nombre-de-caractères
» à la valeur de ces sections, la correspondance de la règle s’effectuera uniquement si {url} ou {query} comporte plus de caractères que « nombre-de-caractères ». Par exemple, la correspondance de la règle suivante sera effective si la partie url de la requête contient « abc » et comporte plus de 500 caractères.
Rule {
Class Isapi
Id 4001
level 1
url { Include "*abc*;500" }
time { Include "*" }
application { Include "*"}
user_name { Include "*" }
directives -c -d isapi:request}
}
Note 4
Une règle doit contenir au moins l’une des sections facultatives suivantes : url, query ou method.