Serveur HTTP Apache Version 2.5

| Description: | Mise en conformité avec le protocole HTTP. | 
|---|---|
| Statut: | Extension | 
| Identificateur de Module: | policy_module | 
| Fichier Source: | mod_policy.c | 
Le protocole HTTP recommande aux clients d'être "indulgents pour ce qu'ils doivent accepter", et aux serveurs d'être "stricts pour ce qu'ils envoient". Dans certains cas, il peut s'avérer difficile de déterminer si un serveur ou une application a été mal configuré, sert un contenu qui ne peut pas être mis en cache ou se comporte de manière non optimale, car le client HTTP est souvent en mesure de compenser les défauts du serveur. Ces problèmes peuvent induire une consommation de bande passante excessive, ou même une interruption de service suite à une charge trop importante du serveur.
Le module mod_policy propose un jeu de filtres
    qui permettent de tester la conformité du serveur au protocole HTTP.
    Ces tests permettent à l'administrateur du serveur de journaliser
    les violations, ou même de rejeter une réponse losque certaines
    conditions spécifiées se réalisent.
Il devient ainsi possible de définir des critères de conformité minimale au protocole HTTP pour développer des applications sans problème. En outre, il est possible de configurer un mandataire inverse ou un cache pour qu'il se protège lui-même contre les serveurs d'origine mal configurés ou les contenus indument impossible à être mis en cache, ou un mécanisme qui détecte les erreurs de configuration au sein du serveur lui-même.
 PolicyConditional
 PolicyConditional PolicyConditionalURL
 PolicyConditionalURL PolicyEnvironment
 PolicyEnvironment PolicyFilter
 PolicyFilter PolicyKeepalive
 PolicyKeepalive PolicyKeepaliveURL
 PolicyKeepaliveURL PolicyLength
 PolicyLength PolicyLengthURL
 PolicyLengthURL PolicyMaxage
 PolicyMaxage PolicyMaxageURL
 PolicyMaxageURL PolicyNocache
 PolicyNocache PolicyNocacheURL
 PolicyNocacheURL PolicyType
 PolicyType PolicyTypeURL
 PolicyTypeURL PolicyValidation
 PolicyValidation PolicyValidationURL
 PolicyValidationURL PolicyVary
 PolicyVary PolicyVaryURL
 PolicyVaryURL PolicyVersion
 PolicyVersion PolicyVersionURL
 PolicyVersionURLSi une règle est violée, il possible d'effectuer les actions suivantes :
Warning
    ajouté à la réponse en tant qu'information à destination du client.Warning header added to the response, and a 502
    Bad Gateway will be returned to the client. Optional links to
    explanatory documentation can be added to each error message,
    detailing the origin of each policy.Il est aussi possible de désactiver toutes les règles pour un
    espace d'URL donné, si le besoin s'en fait sentir, via la directive
    PolicyFilter.
En outre, la directive PolicyEnvironment permet de
    spécifier une variable d'environnement qui, si elle est définie, va
    court-circuiter les règles ou diminuer leur portée.
Les filtres suivants sont disponibles :
304 Not Modified ou 412 Precondition
    Failed. Il arrive q'un serveur ignore les en-têtes
    conditionnels, et cela diminue l'efficacité du mécanisme de mise en
    cache HTTP. Ce filtre rejète les requêtes lorsqu'un en-tête
    conditionnel était présent, et une réponse 2xx a été renvoyée au
    lieu de la réponse 304 ou 412 attendue.Cache-Control: no-cachePragma: no-cacheCache-Control: no-storeCache-Control: privates-maxage est présent mais d'une valeur trop
    faible; oumax-age est présent mais d'une valeur trop
    faible; ouExpires est présent et invalide; ouDate est présent et invalide; ouExpires moins Date est trop faible ; ous-maxage, maxage, ou
    Expires/Date n'est présentHTTP/1.1HTTP/1.0HTTP/0.9Voici un exemple de configuration qui protège un serveur qui délivre du contenu statique :
<Location "/">
  SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
    POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
  # le contenu peut être quelconque, mais l'en-tête Content-Type doit être
     # présent et valide
  PolicyType enforce */*
  # rejet si aucune longueur de contenu déclarée
  PolicyLength enforce
  # pris en charge par le filtre policy length
  PolicyKeepalive ignore
  # rejet si l'en-tête User-Agent aparaît dans les en-têtes Vary
  PolicyVary enforce User-Agent
  # la validation est imposée
  PolicyValidation enforce
  # les réponses conditionnelles non conformes sont rejetées
  PolicyConditional enforce
  # les réponses impossibles à mettre en cache sont rejetées
  PolicyNocache enforce
  # la durée de vie doit être au moins d'un jour
  PolicyMaxage enforce 86400
  # le numéro de version de la requête peut être quelconque
  PolicyVersion ignore HTTP/1.1
</Location>
# désactivation du filtrage pour le répertoire /server-status
<Location "/server-status">
  PolicyFilter off
</Location>
| Description: | Active le filtrage des requêtes conditionnelles. | 
|---|---|
| Syntaxe: | PolicyConditional ignore|log|enforce | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui aurait du être conditionnelle mais ne l'est pas sera rejetée.
# les réponses conditionnelles non conformes doivent être rejetées PolicyConditional enforce
| Description: | URL contenant la description de la politique de filtrage des requêtes conditionnelles. | 
|---|---|
| Syntaxe: | PolicyConditionalURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL de la documentation décrivant la politique de filtrage des requêtes conditionnelles ; elle apparaîtra dans les messages d'erreur.
| Description: | Modification des règles de filtrage en fonction d'une variable d'environnement. | 
|---|---|
| Syntaxe: | PolicyEnvironment variable log-value ignore-value | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Limite l'action des règles à la journalisation ou les désactive totalement en fonction de la présence d'une variable d'environnement. Si la variable spécifiée est présente et égale à la valeur de l'argument log-value, les erreurs rencontrées par les filtres ne seront que journalisées. Si la variable spécifiée est présente et égale à la valeur de l'argument ignore-value, toutes les règles seront ignorées.
# limitation de l'action des règles si la variable POLICY_CONTROL # est présente PolicyEnvironment POLICY_CONTROL log ignore
| Description: | Active ou désactive le filtrage pour un espace d'URL donné. | 
|---|---|
| Syntaxe: | PolicyFilter on|off | 
| Défaut: | on | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Commutateur principal qui permet d'activer ou de désactiver le filtrage pour un espace d'URL donné.
# activé par défaut <Location "/"> PolicyFilter on </Location> # désactivation du filtrage pour le répertoire /server-status <Location "/server-status"> PolicyFilter off </Location>
| Description: | Active la politique de persistance. | 
|---|---|
| Syntaxe: | PolicyKeepalive ignore|log|enforce | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui ne contient ni en-tête
    Content-Length, ni en-tête
    Transfer-Encoding de valeur chunked sera
    rejetée.
# rejet suite a absence d'en-tête Content-Length ou Transfer-Encoding PolicyKeepalive enforce
| Description: | URL contenant la description de la politique de persistance. | 
|---|---|
| Syntaxe: | PolicyKeepaliveURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de persistance ; elle apparaîtra dans les messages d'erreur.
| Description: | Active le filtrage de la spécification de la longueur du contenu. | 
|---|---|
| Syntaxe: | PolicyLength ignore|log|enforce | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui ne contient pas
    d'en-tête Content-Length sera rejetée.
# rejet suite à l'absence de l'en-tête Content-Length PolicyLength enforce
| Description: | URL contenant la description de la politique de filtrage de la spécification de la longueur du contenu. | 
|---|---|
| Syntaxe: | PolicyLengthURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la documentation décrivant la politique de filtrage de la spécification de la longueur du contenu ; elle apparaîtra dans les messages d'erreur.
| Description: | Active le filtrage de la durée de vie des réponses. | 
|---|---|
| Syntaxe: | PolicyMaxage ignore|log|enforce age | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse dont la durée de vie n'est
    pas explicitement spécifiée via un en-tête max-age,
    s-maxage ou Expires, ou dont la durée de
    vie est inférieure à la valeur donnée sera rejetée.
# rejet des réponses dont la durée de vie est inférieure à une # journée PolicyMaxage enforce 86400
| Description: | URL contenant la description de la politique de filtrage des réponses en fonction de leur durée de vie. | 
|---|---|
| Syntaxe: | PolicyMaxageURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de filtrage des réponses en fonction de leur durée de vie ; elle apparaîtra dans les messages d'erreur.
| Description: | Active le filtrage des réponses qui se définissent elles-mêmes comme impossibles à mettre en cache. | 
|---|---|
| Syntaxe: | PolicyNocache ignore|log|enforce | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui se définit elle-même
    comme impossible à mettre en cache via l'en-tête
    Cache-Control ou Pragma sera rejetée.
# une réponse contenant l'en-tête Cache-Control: no-cache sera # rejetée PolicyNocache enforce
| Description: | URL contenant la description de la politique de filtrage des réponses qui se définissent elles-mêmes comme impossibles à mettre en cache. | 
|---|---|
| Syntaxe: | PolicyNocacheURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de filtrage des réponses qui se définissent elles-mêmes comme impossibles à mettre en cache ; elle apparaîtra dans les messages d'erreur.
| Description: | Active la politique des types de contenus. | 
|---|---|
| Syntaxe: | PolicyType ignore|log|enforce type [ type [ ... ]] | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui ne contient pas
    d'en-tête Content-Type, ou dont l'en-tête
    Content-Type est mal formé, ou dont l'en-tête
    Content-Type contient une valeur qui ne correspond pas
    au(x) modèle(s) spécifié(s) sera rejetée.
# impose le type de contenu json ou XML PolicyType enforce application/json text/xml
# rejet suite à type de contenu mal formé PolicyType enforce */*
| Description: | URL contenant la description de la politique des types de contenu. | 
|---|---|
| Syntaxe: | PolicyTypeURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique des types de contenu ; elle apparaîtra dans les messages d'erreur.
| Description: | Active le filtrage de la validation du contenu. | 
|---|---|
| Syntaxe: | PolicyValidation ignore|log|enforce | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse qui ne contient ni en-tête
    ETag valide, ni en-tête Last-Modified, ou
    dont la syntaxe d'un de ces deux en-têtes est incorrecte sera
    rejetée.
# rejet suite à l'absence des en-têtes Etag et/ou Last-Modified PolicyValidation enforce
| Description: | URL contenant la description de la politique de filtrage de la validation du contenu. | 
|---|---|
| Syntaxe: | PolicyValidationURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de filtrage de la validation du contenu ; elle apparaîtra dans les messages d'erreur.
| Description: | Active la politique de filtrage de l'en-tête Vary. | 
|---|---|
| Syntaxe: | PolicyVary ignore|log|enforce header [ header [ ... ]] | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une réponse dont l'en-tête
    Vary contient un des en-têtes spécifiés sera rejetée.
# rejet suite à la présence de l'en-tête "User-Agent" dans l'en-tête # Vary PolicyVary enforce User-Agent
| Description: | URL contenant la description de la politique de filtrage de l'en-tête Vary. | 
|---|---|
| Syntaxe: | PolicyVaryURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de filtrage de l'en-tête Vary ; elle apparaîtra dans les messages d'erreur.
| Description: | Active le filtrage des requêtes en fonction du numéro de version HTTP. | 
|---|---|
| Syntaxe: | PolicyVersion ignore|log|enforce HTTP/0.9|HTTP/1.0|HTTP/1.1 | 
| Défaut: | ignore | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Avec l'argument enforce, une requête dont le numéro de version HTTP est inférieur à la valeur spécifiée sera rejetée.
# rejet des requêtes dont le numéro de version HTTP est inférieur à # HTTP/1.1 PolicyVersion enforce HTTP/1.1
| Description: | URL contenant la description de la politique de filtrage des requêtes en fonction du numéro de version HTTP. | 
|---|---|
| Syntaxe: | PolicyVersionURL url | 
| Défaut: | none | 
| Contexte: | configuration globale, serveur virtuel, répertoire | 
| Statut: | Extension | 
| Module: | mod_policy | 
| Compatibilité: | Disponible à partir de la version 2.5.0 du serveur HTTP Apache. | 
Cette directive permet de spécifier l'URL contenant la description de la politique de filtrage des requêtes en fonction du numéro de version HTTP ; elle apparaîtra dans les messages d'erreur.