]> granicus.if.org Git - apache/blob - docs/manual/env.xml.fr
Remove useless <br \> in highlight blocks.
[apache] / docs / manual / env.xml.fr
1 <?xml version="1.0" encoding="ISO-8859-1" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- English Revision: 1673563 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <manualpage metafile="env.xml.meta">
26
27   <title>Apache et les variables d'environnement</title>
28
29   <summary>
30      <p>Deux types de variables d'environnement affectent le serveur
31      HTTP Apache.</p>
32
33     <p>Le premier type correspond aux variables d'environnement
34     contr&ocirc;l&eacute;es par le syst&egrave;me d'exploitation sous-jacent et d&eacute;finies
35     avant le d&eacute;marrage du serveur. Leurs valeurs peuvent &ecirc;tre utilis&eacute;es
36     directement dans les fichiers de configuration, et peuvent
37     &eacute;ventuellement &ecirc;tre transmises aux scripts CGI et SSI via la
38     directive PassEnv.</p>
39
40     <p>Le second type correspond aux variables nomm&eacute;es appel&eacute;es aussi
41     <em>variables d'environnement</em> dans lesquelles le serveur HTTP
42     Apache stocke des informations via un m&eacute;canisme sp&eacute;cial. Ces
43     informations peuvent servir &agrave; contr&ocirc;ler diverses op&eacute;rations comme
44     l'enregistrement des traces ou le contr&ocirc;le d'acc&egrave;s. On utilise aussi ces
45     variables dans le m&eacute;canisme de communication avec les programmes externes
46     comme les scripts CGI. Ce document pr&eacute;sente diff&eacute;rentes m&eacute;thodes pour
47     manipuler et utiliser ces variables.</p>
48
49     <p>Bien que ces variables soient r&eacute;f&eacute;renc&eacute;es comme <em>variables
50     d'environnement</em>, il ne faut pas les confondre avec les variables
51     d'environnement contr&ocirc;l&eacute;es par le syst&egrave;me d'exploitation sous-jacent.
52     En fait, ces variables sont stock&eacute;es et manipul&eacute;es dans une structure
53     interne &agrave; Apache. Elles ne deviennent de v&eacute;ritables variables
54     d'environnement du syst&egrave;me d'exploitation que lorsqu'elles sont mises &agrave; la
55     disposition de scripts CGI et de scripts inclus c&ocirc;t&eacute; serveur (SSI). Si vous
56     souhaitez manipuler l'environnement du syst&egrave;me d'exploitation sous lequel
57     le serveur s'ex&eacute;cute, vous devez utiliser les m&eacute;canismes standards de
58     manipulation de l'environnement fournis par l'interpr&eacute;teur de commandes
59     (shell) de votre syst&egrave;me d'exploitation.</p>
60   </summary>
61
62   <section id="setting">
63     <title>D&eacute;finition des variables d'environnement</title>
64     <related>
65       <modulelist>
66         <module>mod_cache</module>
67         <module>mod_env</module>
68         <module>mod_rewrite</module>
69         <module>mod_setenvif</module>
70         <module>mod_unique_id</module>
71       </modulelist>
72       <directivelist>
73         <directive module="mod_setenvif">BrowserMatch</directive>
74         <directive module="mod_setenvif">BrowserMatchNoCase</directive>
75         <directive module="mod_env">PassEnv</directive>
76         <directive module="mod_rewrite">RewriteRule</directive>
77         <directive module="mod_env">SetEnv</directive>
78         <directive module="mod_setenvif">SetEnvIf</directive>
79         <directive module="mod_setenvif">SetEnvIfNoCase</directive>
80         <directive module="mod_env">UnsetEnv</directive>
81       </directivelist>
82     </related>
83
84     <section id="basic-manipulation">
85         <title>Manipulations de base de l'environnement</title>
86
87         <p>La m&eacute;thode la plus &eacute;l&eacute;mentaire pour d&eacute;finir une variable
88         d'environnement au niveau d'Apache consiste &agrave; utiliser la directive
89         inconditionnelle <directive module="mod_env"
90         >SetEnv</directive>. Les variables peuvent aussi &ecirc;tre transmises depuis
91         l'environnement du shell &agrave; partir duquel le serveur a &eacute;t&eacute; d&eacute;marr&eacute; en
92         utilisant la directive
93         <directive module="mod_env">PassEnv</directive>.</p>
94
95     </section>
96     <section id="conditional">
97         <title>D&eacute;finitions conditionnelles en fonction des requ&ecirc;tes</title>
98
99         <p>Pour plus de souplesse, les directives fournies par le module
100         <module>mod_setenvif</module> permettent de d&eacute;finir les
101         variables d'environnement en tenant compte des caract&eacute;ristiques
102         de chaque requ&ecirc;te. Par exemple, une
103         variable pourrait n'&ecirc;tre d&eacute;finie que lorsqu'un navigateur sp&eacute;cifique
104         (User-Agent) a g&eacute;n&eacute;r&eacute; la requ&ecirc;te, ou seulement quand un en-t&ecirc;te
105         Referer particulier est pr&eacute;sent. La directive
106         <directive module="mod_rewrite">RewriteRule</directive> du module
107         <module>mod_rewrite</module> qui utilise l'option
108         <code>[E=...]</code> pour d&eacute;finir
109         les variables d'environnement apporte encore plus de souplesse.</p>
110
111     </section>
112     <section id="unique-identifiers">
113         <title>Identifiants uniques</title>
114
115         <p>Finalement, le module <module>mod_unique_id</module> d&eacute;finit la variable
116         d'environnement <code>UNIQUE_ID</code> pour chaque requ&ecirc;te &agrave; une valeur
117         qui est garantie unique parmi "toutes" les requ&ecirc;tes sous des
118         conditions tr&egrave;s sp&eacute;cifiques.</p>
119
120     </section>
121     <section id="standard-cgi">
122         <title>Variables CGI standards</title>
123
124         <p>En plus de l'ensemble des variables d'environnement internes &agrave; la
125         configuration d'Apache et de celles transmises depuis le shell,
126         les scripts CGI et les pages SSI
127         se voient affect&eacute;s un ensemble de variables
128         d'environnement contenant des m&eacute;ta-informations &agrave; propos de la requ&ecirc;te
129         comme pr&eacute;conis&eacute; dans la
130         <a href="http://www.ietf.org/rfc/rfc3875">sp&eacute;cification
131         sur les CGIs</a>.</p>
132
133     </section>
134     <section id="caveats">
135         <title>Quelques mises en garde</title>
136
137         <ul>
138           <li>Les directives de manipulation de l'environnement ne permettent
139           pas de supplanter ou modifier les variables CGI standards.</li>
140
141           <li>Lorsqu'on utilise <program>suexec</program> pour ex&eacute;cuter des
142           scripts CGI, l'environnement est nettoy&eacute; et r&eacute;duit &agrave; un ensemble de
143           variables <em>s&ucirc;res</em> avant l'ex&eacute;cution du script. La liste des
144           variables <em>s&ucirc;res</em> est d&eacute;finie &agrave; la compilation dans
145           <code>suexec.c</code>.</li>
146
147           <li>Pour des raisons de portabilit&eacute;, les noms des variables
148           d'environnement ne peuvent contenir que des lettres, des chiffres, et
149           le caract&egrave;re "souslign&eacute;". En outre, le premier caract&egrave;re ne doit pas
150           &ecirc;tre un chiffre. Les caract&egrave;res qui ne satisfont pas &agrave; ces conditions
151           seront remplac&eacute;s par un caract&egrave;re "souslign&eacute;" quand ils seront
152           transmis aux scripts CGI et aux pages SSI.</li>
153
154           <li>Les contenus d'en-t&ecirc;tes HTTP transmis aux scripts de type
155           CGI ou autre via des variables d'environnement constituent un
156           cas particulier (voir plus loin). Leur nom est converti en
157           majuscules et seuls les tirets sont remplac&eacute;s par des
158           caract&egrave;res '_' ("soulign&eacute;") ; si le format du nom de l'en-t&ecirc;te
159           n'est pas valide, celui-ci est ignor&eacute;. Voir <a
160           href="#fixheader">plus loin</a> pour une solution de
161           contournement du probl&egrave;me.</li>
162
163           <li>La directive <directive
164           module="mod_env">SetEnv</directive> s'ex&eacute;cute assez tard au
165           cours du traitement de la requ&ecirc;te, ce qui signifie que des
166           directives telles que <directive
167           module="mod_setenvif">SetEnvIf</directive> et <directive
168           module="mod_rewrite">RewriteCond</directive> ne verront pas
169           les variables qu'elle aura d&eacute;finies.</li>
170
171           <li>Lorsque le serveur cherche un chemin via une <glossary
172    ref="subrequest">sous-requ&ecirc;te</glossary> interne (par exemple la
173    recherche d'un <directive
174    module="mod_dir">DirectoryIndex</directive>), ou lorsqu'il g&eacute;n&egrave;re un
175    listing du contenu d'un r&eacute;pertoire via le module
176    <module>mod_autoindex</module>, la sous-requ&ecirc;te n'h&eacute;rite pas des
177    variables d'environnement sp&eacute;cifiques &agrave; la requ&ecirc;te. En outre, &agrave; cause
178    des phases de l'API auxquelles <module>mod_setenvif</module> prend
179    part, les directives <directive
180    module="mod_setenvif">SetEnvIf</directive> ne sont pas &eacute;valu&eacute;es
181    s&eacute;par&eacute;ment dans la sous-requ&ecirc;te.</li>
182         </ul>
183     </section>
184   </section>
185   <section id="using">
186     <title>Utilisation des variables d'environnement</title>
187
188     <related>
189       <modulelist>
190         <module>mod_authz_host</module>
191         <module>mod_cgi</module>
192         <module>mod_ext_filter</module>
193         <module>mod_headers</module>
194         <module>mod_include</module>
195         <module>mod_log_config</module>
196         <module>mod_rewrite</module>
197       </modulelist>
198       <directivelist>
199         <directive module="mod_authz_core">Require</directive>
200         <directive module="mod_log_config">CustomLog</directive>
201         <directive module="mod_access_compat">Deny</directive>
202         <directive module="mod_ext_filter">ExtFilterDefine</directive>
203         <directive module="mod_headers">Header</directive>
204         <directive module="mod_log_config">LogFormat</directive>
205         <directive module="mod_rewrite">RewriteCond</directive>
206         <directive module="mod_rewrite">RewriteRule</directive>
207       </directivelist>
208     </related>
209
210     <section id="cgi-scripts">
211         <title>Scripts CGI</title>
212
213         <p>La communication d'informations aux scripts CGI constitue une des
214         principales utilisations des variables d'environnement. Comme indiqu&eacute;
215         plus haut, l'environnement transmis aux scripts CGI comprend des
216         m&eacute;ta-informations standards &agrave; propos de la requ&ecirc;te, en plus des
217         variables d&eacute;finies dans la configuration d'Apache. Pour plus de
218         d&eacute;tails, se r&eacute;f&eacute;rer au
219         <a href="howto/cgi.html">tutoriel CGI</a>.</p>
220
221     </section>
222     <section id="ssi-pages">
223         <title>Pages SSI</title>
224
225         <p>Les documents inclus c&ocirc;t&eacute; serveur (SSI) trait&eacute;s par le filtre
226         <code>INCLUDES</code> du module <module>mod_include</module>,
227         peuvent afficher les
228         variables d'environnement &agrave; l'aide de l'&eacute;l&eacute;ment <code>echo</code>,
229         et peuvent utiliser des variables d'environnement dans les &eacute;l&eacute;ments
230         de contr&ocirc;le de flux pour rendre certaines parties d'une page
231         conditionnelles en fonction des caract&eacute;ristiques de la requ&ecirc;te.
232         Apache fournit aussi les variables d'environnement CGI standards
233         aux pages SSI
234         comme indiqu&eacute; plus haut. Pour plus de d&eacute;tails, se r&eacute;f&eacute;rer au
235         <a href="howto/ssi.html">tutoriel SSI</a>.</p>
236
237     </section>
238     <section id="access-control">
239         <title>Contr&ocirc;le d'acc&egrave;s</title>
240
241         <p>L'acc&egrave;s au serveur peut &ecirc;tre contr&ocirc;l&eacute; en fonction de la valeur de
242         variables d'environnement &agrave; l'aide des directives
243         <code>allow from env=</code> et <code>deny from env=</code>.
244         En association avec la directive
245         <directive module="mod_setenvif">SetEnvIf</directive>, ceci conf&egrave;re une
246         grande souplesse au contr&ocirc;le d'acc&egrave;s au serveur en fonction des
247         caract&eacute;ristiques du client. Par exemple, vous pouvez utiliser ces
248         directives pour interdire l'acc&egrave;s depuis un navigateur particulier
249         (User-Agent).
250         </p>
251
252     </section>
253     <section id="logging">
254         <title>Enregistrement conditionnel des traces</title>
255
256         <p>Les variables d'environnement peuvent &ecirc;tre enregistr&eacute;es dans le
257         fichier de log des acc&egrave;s &agrave; l'aide de l'option <code>%e</code> de la
258         directive <directive module="mod_log_config">LogFormat</directive>.
259         En outre, la d&eacute;cision de tracer ou non les requ&ecirc;tes peut &ecirc;tre prise
260         en fonction de l'&eacute;tat de variables d'environnement en utilisant la
261         forme conditionnelle de la directive
262         <directive module="mod_log_config">CustomLog</directive>. En
263         association avec la directive <directive module="mod_setenvif"
264         >SetEnvIf</directive>, ceci conf&egrave;re une grande souplesse au contr&ocirc;le
265         du tra&ccedil;age des requ&ecirc;tes. Par exemple, vous pouvez choisir de ne pas
266         tracer les requ&ecirc;tes pour des noms de fichiers se terminant par
267         <code>gif</code>, ou encore de ne tracer que les requ&ecirc;tes des clients
268         n'appartenant pas &agrave; votre sous-r&eacute;seau.</p>
269
270     </section>
271     <section id="response-headers">
272         <title>En-t&ecirc;tes de r&eacute;ponse conditionnels</title>
273
274         <p>La directive <directive module="mod_headers">Header</directive>
275         peut se baser sur la pr&eacute;sence ou l'absence d'une variable
276         d'environnement pour d&eacute;cider si un certain en-t&ecirc;te HTTP sera plac&eacute;
277         dans la r&eacute;ponse au client. Ceci permet, par exemple, de n'envoyer un
278         certain en-t&ecirc;te de r&eacute;ponse que si un en-t&ecirc;te correspondant est pr&eacute;sent
279         dans la requ&ecirc;te du client.</p>
280
281     </section>
282
283     <section id="external-filter">
284         <title>Activation de filtres externes</title>
285
286         <p>Les filtres externes configur&eacute;s par le module
287         <module>mod_ext_filter</module> &agrave; l'aide de la directive <directive
288         module="mod_ext_filter">ExtFilterDefine</directive> peuvent &ecirc;tre
289         activ&eacute;s de mani&egrave;re conditionnelle en fonction d'une variable
290         d'environnement &agrave; l'aide des options
291         <code>disableenv=</code> et <code>enableenv=</code>.</p>
292     </section>
293
294     <section id="url-rewriting">
295         <title>R&eacute;&eacute;criture d'URL</title>
296
297         <p>La forme <code>%{ENV:<em>variable</em>}</code> de
298         <em>TestString</em> dans la
299         directive <directive module="mod_rewrite">RewriteCond</directive>
300         permet au moteur de r&eacute;&eacute;criture du module
301         <module>mod_rewrite</module> de prendre des
302         d&eacute;cisions conditionn&eacute;es par des variables d'environnement.
303         Notez que les variables accessibles dans
304         <module>mod_rewrite</module> sans le pr&eacute;fixe
305         <code>ENV:</code> ne sont pas de v&eacute;ritables variables
306         d'environnement. Ce sont plut&ocirc;t des variables sp&eacute;cifiques &agrave;
307         <module>mod_rewrite</module>
308         qui ne sont pas accessibles pour les autres modules.</p>
309     </section>
310   </section>
311
312   <section id="special">
313     <title>Variables d'environnement &agrave; usage sp&eacute;cial</title>
314
315         <p>Des probl&egrave;mes d'interop&eacute;rabilit&eacute; ont conduit &agrave; l'introduction de
316         m&eacute;canismes permettant de modifier le comportement d'Apache lorsqu'il
317         dialogue avec certains clients. Afin de rendre ces m&eacute;canismes aussi
318         souples que possible, ils sont invoqu&eacute;s en d&eacute;finissant des variables
319         d'environnement, en g&eacute;n&eacute;ral &agrave; l'aide de la directive
320         <directive module="mod_setenvif">BrowserMatch</directive>, bien que les
321         directives <directive module="mod_env">SetEnv</directive> et
322         <directive module="mod_env">PassEnv</directive> puissent aussi &ecirc;tre
323         utilis&eacute;es, par exemple.</p>
324
325     <section id="downgrade">
326         <title>downgrade-1.0</title>
327
328         <p>Ceci force le traitement d'une requ&ecirc;te comme une requ&ecirc;te HTTP/1.0
329         m&ecirc;me si elle a &eacute;t&eacute; r&eacute;dig&eacute;e dans un langage plus r&eacute;cent.</p>
330
331     </section>
332     <section id="force-gzip">
333         <title>force-gzip</title>
334           <p>Si le filtre <code>DEFLATE</code> est activ&eacute;, cette variable
335           d'environnement ignorera les r&eacute;glages accept-encoding de votre
336           navigateur et enverra une sortie compress&eacute;e inconditionnellement.</p>
337     </section>
338     <section id="force-no-vary">
339         <title>force-no-vary</title>
340
341         <p>Cette variable entra&icirc;ne la suppression de tout champ
342         <code>Vary</code> des en-t&ecirc;tes de la r&eacute;ponse avant que cette derni&egrave;re
343         soit renvoy&eacute;e au client. Certains clients n'interpr&egrave;tent pas ce champ
344         correctement, et la d&eacute;finition de cette variable permet de contourner
345         ce probl&egrave;me, mais implique aussi la d&eacute;finition de
346         <strong>force-response-1.0</strong>.</p>
347
348     </section>
349     <section id="force-response">
350         <title>force-response-1.0</title>
351
352       <p>Cette variable force une r&eacute;ponse en langage HTTP/1.0 aux clients
353       qui envoient des requ&ecirc;tes dans le m&ecirc;me langage. Elle fut impl&eacute;ment&eacute;e &agrave;
354       l'origine suite &agrave; des probl&egrave;mes avec les mandataires d'AOL. Certains
355       clients en langage HTTP/1.0 ne r&eacute;agissent pas correctement face &agrave; une
356       r&eacute;ponse en langage HTTP/1.1, et cette variable peut &ecirc;tre utilis&eacute;e pour
357       assurer l'interop&eacute;rabilit&eacute; avec eux.</p>
358
359     </section>
360
361     <section id="gzip-only-text-html">
362         <title>gzip-only-text/html</title>
363
364         <p>Positionn&eacute;e &agrave; "1", cette variable d&eacute;sactive le filtre en sortie
365         <code>DEFLATE</code> fourni par le module <module>mod_deflate</module> pour les
366         types de contenu autres que <code>text/html</code>. Si vous pr&eacute;f&eacute;rez
367         utiliser des fichiers compress&eacute;s statiquement,
368         <module>mod_negotiation</module> &eacute;value aussi la variable (non
369         seulement pour gzip, mais aussi pour tous les encodages autres que
370         "identity").</p>
371     </section>
372
373     <section id="no-gzip"><title>no-gzip</title>
374
375         <p>Quand cette variable est d&eacute;finie, le filtre <code>DEFLATE</code> du
376         module <module>mod_deflate</module> est d&eacute;sactiv&eacute;, et
377         <module>mod_negotiation</module> refusera de d&eacute;livrer des ressources
378         encod&eacute;es.</p>
379
380     </section>
381
382     <section id="no-cache"><title>no-cache</title>
383         <p><em>Disponible dans les versions 2.2.12 et ult&eacute;rieures d'Apache</em></p>
384
385         <p>Lorsque cette variable est d&eacute;finie,
386         <module>mod_cache</module> ne sauvegardera pas de r&eacute;ponse
387         susceptible d'&ecirc;tre mise en cache. Cette variable d'environnement
388         n'a aucune incidence sur le fait qu'une r&eacute;ponse d&eacute;j&agrave; enregistr&eacute;e
389         dans la cache soit utilis&eacute;e ou non pour la requ&ecirc;te courante.</p>
390
391     </section>
392
393     <section id="nokeepalive">
394         <title>nokeepalive</title>
395
396         <p>Quand cette variable est d&eacute;finie, la directive
397         <directive module="core">KeepAlive</directive> est d&eacute;sactiv&eacute;e.</p>
398
399     </section>
400
401     <section id="prefer-language"><title>prefer-language</title>
402
403         <p>Cette variable modifie le comportement du module
404         <module>mod_negotiation</module>. Si elle contient un symbole de
405         langage (tel que <code>en</code>, <code>ja</code>
406         ou <code>x-klingon</code>), <module>mod_negotiation</module> essaie de
407         d&eacute;livrer une variante dans ce langage. S'il n'existe pas de telle
408         variante, le processus normal de
409         <a href="content-negotiation.html">n&eacute;gociation</a> s'applique.</p>
410
411     </section>
412
413     <section id="redirect-carefully">
414         <title>redirect-carefully</title>
415
416         <p>Cette variable force le serveur &agrave; &ecirc;tre plus prudent lors de l'envoi
417         d'une redirection au client. Elle est en g&eacute;n&eacute;ral utilis&eacute;e quand un
418         client pr&eacute;sente un probl&egrave;me connu avec les redirections. Elle fut
419         impl&eacute;ment&eacute;e &agrave; l'origine suite a un probl&egrave;me rencontr&eacute; avec le logiciel
420         WebFolders de Microsoft qui ne g&egrave;re pas correctement les redirections
421         vers des ressources de type r&eacute;pertoire via des m&eacute;thodes DAV.</p>
422
423     </section>
424
425    <section id="suppress-error-charset">
426        <title>suppress-error-charset</title>
427
428     <p><em>Disponible dans les versions post&eacute;rieures &agrave; 2.0.54</em></p>
429
430     <p>Quand Apache g&eacute;n&egrave;re une redirection en r&eacute;ponse &agrave; une requ&ecirc;te client,
431     la r&eacute;ponse inclut un texte destin&eacute; &agrave; &ecirc;tre affich&eacute; au cas o&ugrave; le client ne
432     suivrait pas, ou ne pourrait pas suivre automatiquement la redirection.
433     Habituellement, Apache marque ce texte en accord avec le jeu de caract&egrave;res
434     qu'il utilise, &agrave; savoir ISO-8859-1.</p>
435     <p> Cependant, si la redirection fait r&eacute;f&eacute;rence &agrave; une page qui utilise un
436     jeu de caract&egrave;res diff&eacute;rent, certaines versions de navigateurs obsol&egrave;tes
437     essaieront d'utiliser le jeu de caract&egrave;res du texte de la redirection
438     plut&ocirc;t que celui de la page r&eacute;elle.
439     Ceci peut entra&icirc;ner, par exemple, un rendu incorrect du Grec.</p>
440     <p>Si cette variable d'environnement est d&eacute;finie, Apache omettra le jeu de
441     caract&egrave;res pour le texte de la redirection, et les navigateurs obsol&egrave;tes
442     pr&eacute;cit&eacute;s utiliseront correctement celui de la page de destination.</p>
443
444     <note type="warning">
445       <title>Note concernant la s&eacute;curit&eacute;</title>
446
447       <p>L'envoi de pages d'erreur sans sp&eacute;cifier un jeu de caract&egrave;res peut
448       conduire &agrave; des attaques de type "cross-site-scripting" pour les
449       navigateurs qui ne respectent pas la sp&eacute;cification HTTP/1.1 (MSIE) et
450       tentent de d&eacute;duire le jeu de caract&egrave;res &agrave; partir du contenu. De tels
451       navigateurs peuvent &ecirc;tre facilement tromp&eacute;s et utiliser le jeu de
452       caract&egrave;res UTF-7 ; les contenus des donn&eacute;es en entr&eacute;e de type UTF-7
453       (comme les URI de requ&ecirc;te) ne seront alors plus prot&eacute;g&eacute;s par les
454       m&eacute;canismes d'&eacute;chappement usuels con&ccedil;us pour pr&eacute;venir les attaques
455       de type "cross-site-scripting".</p>
456     </note>
457
458    </section>
459
460    <section id="proxy"><title>force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked,
461    proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled</title>
462
463    <p>Ces directives modifient le comportement protocolaire du module
464    <module>mod_proxy</module>.  Voir la documentation sur
465    <module>mod_proxy</module> et <module>mod_proxy_http</module> pour plus de d&eacute;tails.</p>
466    </section>
467
468   </section>
469
470   <section id="examples">
471     <title>Exemples</title>
472
473     <section id="fixheader">
474       <title>Transmission du contenu d'en-t&ecirc;tes non valides aux scripts
475       CGI</title>
476
477       <p>Avec la version 2.4, Apache est plus strict avec la conversion
478       des en-t&ecirc;tes HTTP en variables d'environnement dans
479       <module>mod_cgi</module> et d'autres modules : dans les versions
480       pr&eacute;c&eacute;dentes, tout caract&egrave;re invalide dans les noms d'en-t&ecirc;tes
481       &eacute;tait tout simplement remplac&eacute; par un caract&egrave;re '_', ce qui
482       pouvait exposer &agrave; des attaques de type cross-site-scripting via
483       injection d'en-t&ecirc;tes (voir <a
484       href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues
485       du Web inhabituelles</a>, planche 19/20).</p>
486
487       <p>Si vous devez supporter un client qui envoie des en-t&ecirc;tes non
488       conformes et si ceux-ci ne peuvent pas &ecirc;tre corrig&eacute;s, il existe
489       une solution de contournement simple mettant en jeu les modules
490       <module>mod_setenvif</module> et <module>mod_headers</module>,
491       et permettant de prendre en compte ces en-t&ecirc;tes :</p>
492
493 <highlight language="config">
494 # L'exemple suivant montre comment prendre en compte un en-t&ecirc;te<br />
495 # Accept_Encoding non conforme envoy&eacute; par un client.
496 #
497 SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
498 RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
499 </highlight>
500
501     </section>
502
503     <section id="misbehaving">
504         <title>Modification du comportement protocolaire face &agrave; des clients
505         r&eacute;agissant de mani&egrave;re non conforme</title>
506
507         <p>Les versions ant&eacute;rieures recommandaient l'ajout de ces lignes dans
508         httpd.conf pour tenir compte de probl&egrave;mes connus avec certains clients.
509         Comme les clients concern&eacute;s sont maintenant tr&egrave;s peu utilis&eacute;s, cet
510         ajout n'est pratiquement plus n&eacute;cessaire.</p>
511 <highlight language="config">
512 #
513 # The following directives modify normal HTTP response behavior.
514 # The first directive disables keepalive for Netscape 2.x and browsers that
515 # spoof it. There are known problems with these browser implementations.
516 # The second directive is for Microsoft Internet Explorer 4.0b2
517 # which has a broken HTTP/1.1 implementation and does not properly
518 # support keepalive when it is used on 301 or 302 (redirect) responses.
519 #
520 BrowserMatch "Mozilla/2" nokeepalive
521 BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
522
523 #
524 # The following directive disables HTTP/1.1 responses to browsers which
525 # are in violation of the HTTP/1.0 spec by not being able to grok a
526 # basic 1.1 response.
527 #
528 BrowserMatch "RealPlayer 4\.0" force-response-1.0
529 BrowserMatch "Java/1\.0" force-response-1.0
530 BrowserMatch "JDK/1\.0" force-response-1.0
531 </highlight>
532
533     </section>
534     <section id="no-img-log">
535         <title>Ne pas tracer les requ&ecirc;tes pour des images dans le fichier de
536         trace des acc&egrave;s</title>
537
538         <p>Dans cet exemple, les requ&ecirc;tes pour des images n'apparaissent pas
539         dans le fichier de trace des acc&egrave;s. Il peut &ecirc;tre facilement adapt&eacute; pour
540         emp&ecirc;cher le tra&ccedil;age de r&eacute;pertoires particuliers, ou de requ&ecirc;tes
541         en provenance de certains h&ocirc;tes.</p>
542          <highlight language="config">
543 SetEnvIf Request_URI \.gif image-request
544 SetEnvIf Request_URI \.jpg image-request
545 SetEnvIf Request_URI \.png image-request
546 CustomLog logs/access_log common env=!image-request
547         </highlight>
548
549     </section>
550     <section id="image-theft">
551         <title>Pr&eacute;vention du "Vol d'image"</title>
552
553         <p>Cet exemple montre comment emp&ecirc;cher les utilisateurs ne faisant pas
554         partie de votre serveur d'utiliser des images de votre serveur comme
555         images en ligne dans leurs pages. Cette configuration n'est pas
556         recommand&eacute;e, mais elle peut fonctionner dans des circonstances bien
557         d&eacute;finies. Nous supposons que toutes vos images sont enregistr&eacute;es dans
558         un r&eacute;pertoire nomm&eacute; <code>/web/images</code>.</p>
559         <highlight language="config">
560 SetEnvIf Referer "^http://www\.example\.com/" local_referal
561 # Autorise les navigateurs qui n'envoient aucune information de Referer
562 SetEnvIf Referer "^$" local_referal
563 &lt;Directory "/web/images"&gt;
564     Require env local_referal
565 &lt;/Directory&gt;
566         </highlight>
567
568         <p>Pour plus d'informations sur cette technique, voir le tutoriel sur
569         ServerWatch
570         "<a href="http://www.serverwatch.com/tutorials/article.php/1132731"
571         >Keeping Your Images from Adorning Other Sites</a>".</p>
572     </section>
573   </section>
574 </manualpage>