From: Lucien Gentis Date: Fri, 26 Jun 2026 16:06:27 +0000 (+0000) Subject: fr doc XML files updates. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8963acbacd653a9394acc25f835a0d1e07617bb8;p=thirdparty%2Fapache%2Fhttpd.git fr doc XML files updates. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1935664 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/event.xml.fr b/docs/manual/mod/event.xml.fr index 2f8fed58cd..d5a463d699 100644 --- a/docs/manual/mod/event.xml.fr +++ b/docs/manual/mod/event.xml.fr @@ -1,7 +1,7 @@ - + @@ -43,8 +43,15 @@ mobiliser des threads que pour les connexions en cours de traitementconfigure lorsque vous compilez le programme httpd.

- +

Lorsque ce module est construit en tant que module DSO, il peut être +chargé à l’aide de la commande :

+ +LoadModule mpm_event_module modules/mod_mpm_event.so + + + +Modules multi-processus (MPMs) Le MPM worker
Relations avec le MPM Worker diff --git a/docs/manual/rewrite/intro.xml.fr b/docs/manual/rewrite/intro.xml.fr index da11d15aa7..e3ef758fdc 100644 --- a/docs/manual/rewrite/intro.xml.fr +++ b/docs/manual/rewrite/intro.xml.fr @@ -1,7 +1,7 @@ - + @@ -40,15 +40,14 @@ pieds. Documentation du module mod_rewrite - -Redirection and remise en +Redirection et remise en correspondance -Contrôle d'accès +Réécritures par répertoire +Drapeaux de RewriteRule Serveurs virtuels -Mise en cache Utilisation de RewriteMap -Techniques avancées Quand ne pas utiliser mod_rewrite +Détails techniques
Introduction

Le module Apache mod_rewrite est un module puissant @@ -78,17 +77,32 @@ le débogage des problèmes avec la configuration de mod_rewrite est à ce prix car vous verrez alors exactement comment chaque règle est traitée.

+

+ Organigramme
+simplifié du fonctionnement de mod_rewrite : arrivée de la requête, vérification
+RewriteEngine On, traitement des règles dans l’ordre, test de correspondance du
+motif et des RewriteCond, application des substitutions si ces deux tests sont
+positifs, arrêt du traitement des règles si un drapeau L ou END est défini,
+sinon traitement de la règle suivante
+ Figure : Présentation simplifiée de la manière dont +mod_rewrite traite une requête. Voir Détails techniques pour une description complète du +traitement avec les phases, les drapeaux et le bouclage. +

+
Expressions rationnelles -

mod_rewrite utilise le vocabulaire des Expressions rationnelles compatibles Perl. +

mod_rewrite utilise le vocabulaire des Expressions +rationnelles compatibles avec Perl à l’aide de la bibliothèque PCRE2. Ce document n'a pas pour prétention d'être une référence détaillée des -expressions rationnelles. A cet effet, nous recommandons les pages de manuel de PCRE, la page de manuel des -expressions rationnelles Perl, et l'ouvrage documentation de +PCRE2, la page de manuel des +expressions rationnelles de Perl, et l'ouvrage Mastering Regular Expressions, par Jeffrey Friedl (la troisième édition date de 2006, mais la syntaxe des expressions rationnelles n'a pas vraiment @@ -160,18 +174,29 @@ correspond à tout caractère ne faisant pas partie de la classe c=t mais pas à c/t -

Avec mod_rewrite, le caractère ! peut +

Le caractère ! (Not) peut préfixer une expression rationnelle afin d'en exprimer la négation. Autrement dit, une chaîne ne correspondra que si elle ne correspond pas à l'expression située après le !.

+

Notez que lorsqu’on utilise ! pour inverser un motif, les références arrières (par exemple $1, +$2) ne sont pas disponibles, car le motif ne correspond plus.

+ +

La règle suivante, par exemple, redirige toute requête qui ne commence +pas par /admin

+ + +RewriteRule "!^/admin" "/xyz.html" [R,L] + +
Disponibilité des références arrières dans les expressions rationnelles

Vous devez vous souvenir d'une chose importante : chaque fois - que vous utilisez des parenthèses dans un Modèle ou dans + que vous utilisez des parenthèses dans un Motif ou dans un des modèles de conditions, des références arrières sont créées en interne et peuvent être rappelées via les chaînes $N et %N (voir ci-dessous). Ces @@ -197,15 +222,23 @@ arrières dans les expressions rationnelles elles vous paraissent un peu exotiques au premier abord.

- Flux des comparaisons effectuées par les règles RewriteRule
-      et RewriteCond
+ Diagramme montrant la
+manière dont les références arrières circulent entre les RewriteRule et les
+RewriteCond : $1-$9 capturent des groupes issus des motifs RewriteRule, %1-%9
+capturent des groupes issus des motifs des chaînes à tester (ou TestStrings) de
+RewriteCond, les deux étant disponibles dans les chaînes de substitution et dans
+les chaînes à tester de RewriteCond subséquentes
Figure 1 : Le cheminement d'une référence arrière à travers une règle.
- Dans cet exemple, une requête pour /test/1234 serait + Dans cet exemple, une requête pour /test/1234 vers l’hôte admin.example.com serait transformée en - /admin.foo?page=test&id=1234&host=admin.example.com. + /admin.foo?page=test&id=1234&host=admin.example.com, + sous réserve que %{DOCUMENT_ROOT}/test ne soit pas un fichier + existant.

+

Voir aussi Détails techniques + pour un diagramme montrant le cheminement des références arrières avec des + conditions multiples.

@@ -215,28 +248,48 @@ arrières dans les expressions rationnelles module="mod_rewrite">RewriteRule est constituée de trois arguments séparés par des espaces. Les arguments sont :

    -
  1. Modèle: le modèle des URLs auxquelles la règle doit +
  2. Motif: le motif des URLs auxquelles la règle doit s'appliquer;
  3. Substitution: vers quoi la requête correspondante doit être transformée;
  4. [drapeaux]: options affectant la requête réécrite.
-

Le Modèle est une expression -rationnelle. Au sein de la première règle de réécriture, ou jusqu'à -ce qu'une substitution survienne, elle est comparée au chemin de -l'URL de la requête entrante (la -partie située après le nom d'hôte mais avant tout point d'interrogation -qui indique le début d'une chaîne de paramètres de -requête) ou, dans un contexte de répertoire, au chemin de la -requête relativement au répertoire pour lequel la -règle est définie. Lorsqu'une substitution a eu lieu, les -règles suivantes effectuent leurs comparaisons par rapport à la valeur -substituée.

+

Le Motif est une expression +rationnelle. Dans un contexte de serveur virtuel ou de serveur global, il +est comparé au chemin d’URL %-décodé +de la requête entrante — la partie après le nom d’hôte et le port, en +excluant la chaîne de paramètres (par exemple /app/index.html). +Dans un contexte de répertoire, le motif +est comparé au chemin de la requête relatif au répertoire pour lequel la règle +est définie (avec le préfixe de répertoire supprimé — voir Réécritures par répertoire pour les +détails). +

+ +

Lorsqu’une substitution a été effectuée, toute règle qui suit est comparée à +la valeur substituée.

+ +

Le Motif n’est comparé qu’au chemin d’URL — à l’exclusion +des nom d’hôte, port ou chaîne de paramètres. Pour une comparaison incluant ces +derniers, utilisez une condition RewriteCond avec les variables +%{HTTP_HOST}, %{SERVER_PORT} ou +%{QUERY_STRING}, respectivement.

+ +mod_rewrite opère exclusivement sur le chemin d’URL et les +en-têtes HTTP. Il ne peut pas inspecter le corps de la requête (par exemple, les +données POST). Si vous devez prendre des décisions de routage en fonction du +contenu du corps de la requête, traitez le problème à l’aide de la logique de +votre application ou utilisez un module tel que mod_request +associé à un filtre personnalisé.

Syntaxe de la directive RewriteRule
+ alt="Diagramme annoté pour la syntaxe de la directive RewriteRule montrant +trois composants : le motif (une expression rationnelle mise en correspondance +avec le chemin d’URL, la substitution (l’URL ou le chemin de remplacement) et +des drapeaux facultatifs entourés de crochets" />
Figure 2 : Syntaxe de la directive RewriteRule.

@@ -284,13 +337,13 @@ le cas avec 2 (par exemple, il n'y a pas de répertoire

La chaîne de Substitution peut aussi contenir des références arrières vers des parties du chemin d'URL entrant -correspondant au Modèle. Considérons ce qui suit :

+correspondant au Motif. Considérons ce qui suit :

RewriteRule "^/produits/(.*)/view$" "/var/web/produitsdb/$1"

La variable $1 sera remplacée par tout texte correspondant à l'expression située entre les parenthèses dans le -Modèle. Par exemple, une requête pour +Motif. Par exemple, une requête pour http://example.com/produits/r14df/vue correspondra au chemin /var/web/produitsdb/r14df.

@@ -332,7 +385,10 @@ correspondance est évaluée.

Syntaxe de la directive RewriteCond
+ alt="Diagramme annoté pour la syntaxe de la directive RewriteCond montrant +deux composants : la chaîne à tester ou TestString (une variable ou du texte à +tester) et le motif de condition ou CondPattern (expression rationnelle ou +comparaison à évaluer) avec des drapeaux facultatifs entourés de crochets" />
Figure 3 : Syntaxe de la directive RewriteCond

@@ -390,25 +446,98 @@ supplémentaire sur RewriteMap.

Fichiers .htaccess -

La réécriture est en général définie au niveau de la configuration du -serveur principal (en dehors de toute section Directory) ou dans une section VirtualHost. Il s'agit là de la -manière la plus simple de mettre en oeuvre la réécriture et nous la -recommandons. Il est possible, cependant, de mettre en oeuvre la -réécriture au sein d'une section Directory ou d'un fichier .htaccess ; ce type de -configuration est cependant plus complexe. Cette technique est appelée -réécriture par répertoire.

- -

La principale différence avec les réécritures au niveau du serveur réside -dans le fait que le préfixe du chemin du répertoire contenant le fichier -.htaccess est supprimé avant la mise en correspondance dans -la règle RewriteRule. De -plus, on doit utiliser la directive RewriteBase pour s'assurer que la -requête est correctement mise en correspondance.

+

Il est possible d’utiliser des règles de réécriture dans un contexte de répertoire (fichiers .htaccess et sections Directory), mais dans ce cas, les +règles se comportent différemment — en particulier, le préfixe du répertoire est +supprimé de l’URL avant la recherche de correspondance. Voir le document Réécritures dans un contexte de +répertoire pour une explication détaillée. Notez que les sections If et Location adoptent aussi le comportement du contexte +de répertoire — voir Quels +contextes prennent en charge les règles de réécriture ?.

+ +
+ +
Considérations en matière de sécurité + +

mod_rewrite est un outil de manipulation d’URL puissant, +mais qui dit puissance dit risque d’erreurs liées à la sécurité. Cette section +met en lumière les pièges en matière de sécurité courants à éviter lors de +la rédaction de règles de réécritures.

+ +
Redirections ouvertes + +

Si une règle RewriteRule +construit un URL de redirection en utilisant une entrée utilisateur non validée, +un attaquant pourra fabriquer un lien qui redirige les visiteurs vers un site +malveillant semblant provenir de votre domaine. Cette vulnérabilité est connue +sous le nom de redirection ouverte.

+ +

Par exemple, cette règle est dangereuse :

+ + +# DANGEREUX - permet une redirection ouverte +RewriteRule "^/redirect" "%{QUERY_STRING}" [R,L] + + +

Un attaquant pourrait en effet utiliser +https://yoursite.com/redirect?https://evil.com pour rediriger les +utilisateurs vers un site malveillant. Assurez vous de toujours valider ou +contraindre les cibles de redirection. Si la destination doit être sur votre +propre site, assurez vous que la substitution commence par / (un +chemin relatif) plutôt que de permettre à l’utilisateur d’entrer un URL complet.

+ +
+ +
Server-Side Request Forgery (SSRF) + +

Lorsqu’on utilise la drapeau [P] (proxy), +mod_rewrite fait que le serveur +effectue une requête HTTP vers l’URL de substitution de la part du client. Si +une partie de cet URL est dérivée de l’entrée du client — références arrières, +chaînes de paramètres ou en-têtes — un attaquant pourrait faire que votre +serveur effectue des requêtes vers des services internes arbitraires ou des +hôtes externes.

+ +

Par exemple :

+ + +# DANGEREUX - l’utilisateur contrôle la cible du mandataire +RewriteCond "%{QUERY_STRING}" "target=(.+)" +RewriteRule "^/fetch" "http://%1" [P] + + +

Un attaquant pourrait utiliser cette configuration pour tester des services +réseau internes qui autrement ne seraient pas accessibles depuis l’Internet. +Utilisez toujours un nom d’hôte fixe dans les cibles de mandataire et limitez +les références arrières à la partie chemin seulement.

+ +
+ +
Traversée de chemin + +

Des règles de réécriture qui associent directement des composants du chemin +fournis par l’utilisateur au système de fichier ouvrent la voie à des attaques +de traversée de chemin si l’entrée n’est pas correctement contrainte. Par +exemple :

+ + +# DANGEREUX - permet une traversée de chemin +RewriteRule "^/files/(.+)" "/var/data/$1" [L] + + +

Une requête pour /files/../../etc/passwd pourrait accéder à des +fichiers en dehors du répertoire souhaité. Utilisez des motifs restreints dans +votre règle RewriteRule (par exemple +[a-zA-Z0-9_-]+ au lieu de .+), et utilisez les +protections intégrées d’Apache httpd (restrictions Options et Directory) pour une défense en profondeur.

+ +