<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 906266 -->
+<!-- English Revision: 1587032:1702013 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
module="core" type="section">Location</directive> ou de fichiers
<code><a href="core.html#accessfilename">.htaccess</a> </code> pour
contrôler l'accès à certaines zones du serveur. Le contrôle d'accès
- peut être effectué en fonction du nom d'hôte, de l'adresse IP, ou
- d'autres caractéristiques de la requête client, telles qu'elles sont
- enregistrées dans des <a href="../env.html">variables
- d'environnement</a>.</p>
+ peut être effectué en fonction du nom d'hôte ou de l'adresse IP.</p>
<p>En général, les directives de restriction d'accès s'appliquent à
toutes les méthodes d'accès (<code>GET</code>, <code>PUT</code>,
module="mod_authz_core">Require</directive> est utilisée au cours de
la phase d'autorisation pour vérifier si un utilisateur se voit
accorder ou refuser l'accès à une ressource. mod_authz_host fournit
- les types d'autorisation <code>env</code>, <code>ip</code>,
- <code>host</code> et <code>all</code>. D'autres types d'autorisation
+ les types d'autorisation <code>ip</code>, <code>host</code> et <code>local</code>. D'autres
+ types d'autorisation
sont aussi disponibles, mais nécessitent le chargement des modules
d'autorisation appropriés.</p>
<p>Ces fournisseurs d'autorisation permettent de déterminer quels
hôtes peuvent accéder à une zone du serveur. On peut contrôler
- l'accès en fonction du nom d'hôte, de l'adresse IP, d'un intervalle
- d'adresses IP, ou d'autres caractéristiques de la requête client
- enregistrées dans des variables d'environnement.</p>
-
-<section id="reqenv"><title>Require env</title>
-
- <p>Le fournisseur <code>env</code> permet de contrôler l'accès au
- serveur en fonction de l'existence d'une <a
- href="../env.html">variable d'environnement</a>. Lorsque
- <code>Require env <var>env-var</var></code> est spécifié, la
- requête est autorisée si la variable d'environnement
- <var>env-var</var> existe. Le serveur fournit la possibilité
- de définir des variables d'environnement avec une grande souplesse
- en fonction des caractéristiques de la requête client à l'aide des
- directives fournies par le module <module>mod_setenvif</module>. On
- peut ainsi utiliser cette directive pour contrôler l'accès en
- fonction de certains en-têtes comme <code>User-Agent</code> (type de
- navigateur), <code>Referer</code>, etc...</p>
-
- <example><title>Exemple :</title>
- SetEnvIf User-Agent ^KnockKnock/2\.0 laisse_moi_entrer<br />
- <Directory /docroot><br />
- <indent>
- Require env laisse_moi_entrer<br />
- </indent>
- </Directory>
- </example>
-
- <p>Dans cet exemple, les navigateurs dont la chaîne de description
- de l'en-tête user-agent commence par <code>KnockKnock/2.0</code> se
- verront accorder l'accès, alors que tous les autres se le verront
- refuser.</p>
+ l'accès en fonction du nom d'hôte, de l'adresse IP, ou d'un intervalle
+ d'adresses IP.</p>
-</section>
+ <p>A partir de la version 2.4.8, les directives require host
+ supportent les <a href="../expr.html">expressions</a>.</p>
<section id="reqip"><title>Require ip</title>
<p>Une adresse IP complète :</p>
- <example>
- Require ip 10.1.2.3<br />
- Require ip 192.168.1.104 192.168.1.205
- </example>
+ <highlight language="config">
+Require ip 10.1.2.3
+Require ip 192.168.1.104 192.168.1.205
+ </highlight>
<p>L'adresse IP d'un hôte pour qui l'accès est accordé</p>
<p>Une adresse IP partielle :</p>
- <example>
- Require ip 10.1<br />
- Require ip 10 172.20 192.168.2
- </example>
+ <highlight language="config">
+Require ip 10.1
+Require ip 10 172.20 192.168.2
+ </highlight>
<p>Les 1 à 3 premiers octets d'une adresse IP, pour une restriction
à un sous-réseau.</p>
<p>Une paire réseau/masque de sous-réseau :</p>
- <example>
+ <highlight language="config">
Require ip 10.1.0.0/255.255.0.0
- </example>
+ </highlight>
<p>Un réseau a.b.c.d, et un masque de sous-réseau w.x.y.z. pour une
restriction de sous-réseau plus fine.</p>
<p>Une spécification CIDR réseau/nnn :</p>
- <example>
+ <highlight language="config">
Require ip 10.1.0.0/16
- </example>
+ </highlight>
<p>Identique au cas précédent, excepté que le masque de sous-réseau
représente les nnn premiers bits de poids fort.</p>
<p>On peut spécifier des adresses et des sous-réseaux IPv6 comme
suit :</p>
- <example>
- Require ip 2001:db8::a00:20ff:fea7:ccea<br />
- Require ip 2001:db8::a00:20ff:fea7:ccea/10
- </example>
+ <highlight language="config">
+Require ip 2001:db8::a00:20ff:fea7:ccea
+Require ip 2001:db8::a00:20ff:fea7:ccea/10
+ </highlight>
+ <p>Note: comme les adresses IP sont lues au démarrage, les
+ expressions ne sont pas évaluées au moment de la requête.</p>
</section>
<p>Un nom de domaine (éventuellement partiel)</p>
- <example>
- Require host apache.org<br />
- Require host .net example.edu
- </example>
+ <highlight language="config">
+Require host example.org
+Require host .net example.edu
+ </highlight>
<p>Les hôtes dont les noms correspondent ou se terminent par la
chaîne spécifiée se voient accorder l'accès. Seuls les élément de
nom de domaine complets sont mis en correspondance ; ainsi,
- l'exemple ci-dessus correspondra à <code>foo.apache.org</code>, mais
- ne correspondra pas à <code>fooapache.org</code>. Avec cette
+ l'exemple ci-dessus correspondra à <code>foo.example.org</code>, mais
+ ne correspondra pas à <code>fooexample.org</code>. Avec cette
configuration, Apache va effectuer une double recherche DNS sur
l'adresse IP du client, sans tenir compte de la définition de la
directive <directive module="core">HostnameLookups</directive>. Il
</section>
-<section id="reqall"><title>Require all</title>
+<section id="reqlocal"><title>Require local</title>
+
+ <p>Le fournisseur <code>local</code> autorise l'accès au serveur si
+ l'une au moins de ces conditions est satisfaite :</p>
- <p>Le fournisseur <code>all</code> imite la fonctionnalité
- précédemment fournie par les directives 'Allow from all' et 'Deny
- from all'. Le fournisseur accepte un des deux arguments 'granted' ou
- 'denied'. Dans les exemples suivants, le premier
- accorde l'accès à toutes les requêtes, alors que le second le
- refuse.</p>
+ <ul>
+ <li>l'adresse IP du client correspond à 127.0.0.0/8</li>
+ <li>l'adresse IP du client est ::1</li>
+ <li>les adresses IP du client et du serveur sont identiques</li>
+ </ul>
- <example>
- Require all granted<br />
- </example>
+ <p>L'exemple suivant montre une méthode simple pour sélectionner les
+ connexions en provenance de l'hôte local :</p>
- <example>
- Require all denied<br />
- </example>
+ <highlight language="config">
+ Require local
+ </highlight>
</section>
+<section id="proxy"><title>Note concernant la sécurité</title>
+ <p>Si le contenu de votre serveur est mandaté, vous devez garder à
+ l'esprit que l'adresse client correspondra à l'adresse de votre
+ serveur mandataire et non à l'adresse du client, et l'utilisation de
+ la directive <code>Require</code> dans ce contexte ne provoquera pas
+ forcément l'effet désiré. Voir <module>mod_remoteip</module> pour
+ une solution possible à ce problème.</p>
+
</section>
+</section>
</modulesynopsis>