mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1746002 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			227 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<?xml version="1.0" encoding="UTF-8" ?>
 | 
						|
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 | 
						|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
 | 
						|
<!-- English Revision: 1745189 -->
 | 
						|
<!-- French translation : Lucien GENTIS -->
 | 
						|
<!-- Reviewed by : Vincent Deffontaines -->
 | 
						|
 | 
						|
<!--
 | 
						|
 Licensed to the Apache Software Foundation (ASF) under one or more
 | 
						|
 contributor license agreements.  See the NOTICE file distributed with
 | 
						|
 this work for additional information regarding copyright ownership.
 | 
						|
 The ASF licenses this file to You under the Apache License, Version 2.0
 | 
						|
 (the "License"); you may not use this file except in compliance with
 | 
						|
 the License.  You may obtain a copy of the License at
 | 
						|
 | 
						|
     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
 Unless required by applicable law or agreed to in writing, software
 | 
						|
 distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 See the License for the specific language governing permissions and
 | 
						|
 limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<manualpage metafile="access.xml.meta">
 | 
						|
<parentdocument href="./">How-To / Tutoriels</parentdocument>
 | 
						|
 | 
						|
<title>Contrôle d'accès</title>
 | 
						|
 | 
						|
<summary>
 | 
						|
    <p>Le contrôle d'accès fait référence à tout concept de contrôle
 | 
						|
    d'accès à une ressource quelconque. Il est distinct du processus d'<a
 | 
						|
    href="auth.html">authentification et d'autorisation</a>.</p>
 | 
						|
</summary>
 | 
						|
 | 
						|
<section id="related"><title>Modules et directives concernés</title>
 | 
						|
 | 
						|
    <p>Plusieurs modules peuvent intervenir dans le contrôle d'accès.
 | 
						|
    Les plus importants sont <module>mod_authz_core</module> et
 | 
						|
    <module>mod_authz_host</module>. Ce document également aussi comment
 | 
						|
    utiliser <module>mod_rewrite</module> pour le contrôle
 | 
						|
    d'accès.</p>
 | 
						|
 | 
						|
</section>
 | 
						|
 | 
						|
<section id="host"><title>Contrôle d'accès en fonction de l'hôte du
 | 
						|
client</title>
 | 
						|
    <p>
 | 
						|
    Si vous souhaitez restreindre l'accès à certaines parties de votre
 | 
						|
    site web en fonction de l'adresse de l'hôte de vos visiteurs, le
 | 
						|
    plus simple pour y parvenir consiste à utiliser le module
 | 
						|
    <module>mod_authz_host</module>.
 | 
						|
    </p>
 | 
						|
 | 
						|
    <p>La directive <directive
 | 
						|
    module="mod_authz_core">Require</directive> permet d'accorder ou
 | 
						|
    d'interdire l'accès à certaines ressources de différentes manières.
 | 
						|
    Ces critères d'accès, en conjonction avec les directives <directive
 | 
						|
    module="mod_authz_core">RequireAll</directive>, <directive
 | 
						|
    module="mod_authz_core">RequireAny</directive>, et <directive
 | 
						|
    module="mod_authz_core">RequireNone</directive>, peuvent être
 | 
						|
    combinés d'une manière suffisamment complexe pour
 | 
						|
    satisfaire votre politique de contrôle d'accès.</p>
 | 
						|
 | 
						|
    <note type="warning"><p>
 | 
						|
    Les directives <directive
 | 
						|
    module="mod_access_compat">Allow</directive>, <directive
 | 
						|
    module="mod_access_compat">Deny</directive>, et <directive
 | 
						|
    module="mod_access_compat">Order</directive> fournies par le module
 | 
						|
    <module>mod_access_compat</module> sont obsolètes, et sont appelées à
 | 
						|
    disparaître dans les versions futures. Il est donc déconseillé de
 | 
						|
    les utiliser, et de se fier aux tutoriels qui recommandent leur
 | 
						|
    utilisation.
 | 
						|
    </p></note>
 | 
						|
 | 
						|
    <p>Les directives Require s'utilisent comme suit :</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
Require host <var>address</var>
 | 
						|
Require ip <var>ip.address</var>
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>Dans la première forme, <var>nom-hôte</var> est un nom de domaine
 | 
						|
    pleinement qualifié (fqdn), ou un nom de domaine partiel ; vous
 | 
						|
    pouvez spécifier plusieurs noms de domaines, si vous le désirez.</p>
 | 
						|
 | 
						|
    <p>Dans la seconde forme, <var>adresse-ip</var> est une adresse IP
 | 
						|
    complète, une adresse IP partielle, une paire réseau/masque de
 | 
						|
    sous-réseau ou une spécification CIDR de la forme réseau/nnn. Il est
 | 
						|
    possible de spécifier des adresses IPv4 ou IPv6.</p>
 | 
						|
 | 
						|
    <p>Voir <a href="../mod/mod_authz_host.html#requiredirectives">la
 | 
						|
    documentation de mod_authz_host</a> pour d'autres exemples de cette
 | 
						|
    syntaxe.</p>
 | 
						|
 | 
						|
    <p>Vous pouvez insérer le mot-clé <code>not</code> pour inverser un
 | 
						|
    critère particulier. Notez que le mot <code>not</code> réalise la
 | 
						|
    négation sur la valeur, et ne peut pas être utilisé seul pour autoriser
 | 
						|
    ou interdire une requête, car <em>non vrai</em> ne
 | 
						|
    veut pas ici forcément dire <em>faux</em>. Ainsi, pour interdire la
 | 
						|
    visite d'une page à l'aide d'une négation, le bloc doit contenir un
 | 
						|
    élément, qui sera évalué à l'une des valeurs vrai ou faux.
 | 
						|
    Par exemple, si quelqu'un est en train de
 | 
						|
    spamer votre forum, vous pouvez ajouter cette ligne pour lui refuser
 | 
						|
    l'accès :</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
<RequireAll>
 | 
						|
    Require all granted
 | 
						|
    Require not ip 10.252.46.165
 | 
						|
</RequireAll>
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>Les visiteurs possédant cette adresse (<code>10.252.46.165</code>) ne pourront pas voir le
 | 
						|
    contenu concerné par cette directive. Si vous voulez interdir
 | 
						|
    l'accès à une machine en fonction de son nom, vous pouvez ajouter
 | 
						|
    ceci :</p>
 | 
						|
 | 
						|
    <highlight language="config">Require not host <var>host.example.com</var></highlight>
 | 
						|
 | 
						|
    <p>Et si vous voulez interdire l'accès à un domaine particulier,
 | 
						|
    vous pouvez spécifier des adresses IP partielles ou des noms de
 | 
						|
    domaine, comme ceci :</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
Require not ip 192.168.205
 | 
						|
Require not host phishers.example.com moreidiots.example
 | 
						|
Require not host gov
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>Les directives <directive
 | 
						|
    module="mod_authz_core">RequireAll</directive>, <directive
 | 
						|
    module="mod_authz_core">RequireAny</directive>, et <directive
 | 
						|
    module="mod_authz_core">RequireNone</directive> ouvrent le champ à des
 | 
						|
    critères d'accès plus complexes.</p>
 | 
						|
 | 
						|
</section>
 | 
						|
 | 
						|
<section id="env"><title>Contrôle d'accès en fonction de variables
 | 
						|
arbitraires</title>
 | 
						|
 | 
						|
    <p>Vous pouvez accorder ou refuser l'accès en fonction de variables
 | 
						|
    d'environnement arbitraires ou de valeurs d'en-têtes de la requête
 | 
						|
    en utilisant la directive <directive type="section"
 | 
						|
    module="core">If</directive>. Par exemple, pour interdire l'accès en
 | 
						|
    fonction du user-agent (le type de navigateur), vous pouvez
 | 
						|
    spécifier ceci :</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
<If "%{HTTP_USER_AGENT} == 'BadBot'">
 | 
						|
    Require all denied
 | 
						|
</If>
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>En utilisant la syntaxe <code>expr</code> de la directive
 | 
						|
    <directive module="mod_authz_core">Require</directive>, l'exemple
 | 
						|
    précédent peut aussi s'écrire :</p>
 | 
						|
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
Require expr %{HTTP_USER_AGENT} != 'BadBot'
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <note><title>Avertissement :</title>
 | 
						|
    <p>Contrôler l'accès en fonction de l'en-tête
 | 
						|
    <code>User-Agent</code> n'est pas une technique fiable, car cet
 | 
						|
    en-tête peut être défini à une valeur quelconque, selon le bon
 | 
						|
    vouloir de l'utilisateur.</p>
 | 
						|
    </note>
 | 
						|
 | 
						|
    <p>Voir le document à propos des <a
 | 
						|
    href="../expr.html">expressions</a> pour une description plus
 | 
						|
    approfondie des syntaxes d'expressions et des variables disponibles.</p>
 | 
						|
 | 
						|
</section>
 | 
						|
 | 
						|
<section id="rewrite"><title>Utilisation de mod_rewrite pour le contrôle
 | 
						|
d'accès</title>
 | 
						|
 | 
						|
    <p>Le drapeau <code>[F]</code> de la directive <directive
 | 
						|
    module="mod_rewrite">RewriteRule</directive> permet d'envoyer une
 | 
						|
    réponse de type 403 Forbidden. Il vous permet donc d'interdire
 | 
						|
    l'accès à une ressource en fonction d'un critère arbitraire.</p>
 | 
						|
 | 
						|
    <p>Par exemple, pour bloquer l'accès à une ressources entre 20h et
 | 
						|
    7h du matin, vous pouvez utiliser <module>mod_rewrite</module> :</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
RewriteEngine On
 | 
						|
RewriteCond "%{TIME_HOUR}" ">=20" [OR]
 | 
						|
RewriteCond "%{TIME_HOUR}" "<07"
 | 
						|
RewriteRule "^/fridge" "-" [F]
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>Toute requête arrivant après 20h ou avant 7h du matin provoquera
 | 
						|
    l'envoi d'une réponse de type 403 Forbidden. Vous pouvez utiliser
 | 
						|
    cette technique pour vérifier toutes sortes de critères. En outre,
 | 
						|
    si vous le préférez, vous pouvez rediriger ou réécrire la requête.</p>
 | 
						|
 | 
						|
    <p>Notez que la directive <directive type="section"
 | 
						|
    module="core">If</directive>, ajoutée à partir de la version 2.4,
 | 
						|
    permet de remplacer le module <module>mod_rewrite</module> dans de
 | 
						|
    nombreuses situations où il était traditionnellement utilisé, et
 | 
						|
    il sera probablement préférable pour vous de tenter de l'utiliser
 | 
						|
    avant de vous tourner vers mod_rewrite.</p>
 | 
						|
 | 
						|
</section>
 | 
						|
 | 
						|
<section id="moreinformation"><title>Informations complémentaires</title>
 | 
						|
 | 
						|
    <p>Le <a href="../expr.html">moteur d'expressions</a> vous fournit
 | 
						|
    une grande puissance d'action en fonction de variables du serveur
 | 
						|
    arbitraires, et il vous est conseillé de consulter le document
 | 
						|
    correspondant pour plus de détails.</p>
 | 
						|
 | 
						|
    <p>De même, vous devez lire la documentation du module
 | 
						|
    <module>mod_authz_core</module> pour des exemples de combinaison de
 | 
						|
    critères d'accès multiples, et en particulier la manière dont ces
 | 
						|
    derniers interagissent.</p>
 | 
						|
 | 
						|
    <p>Voir aussi le How-To <a href="auth.html">Authentification and
 | 
						|
    autorisation</a>.</p>
 | 
						|
</section>
 | 
						|
 | 
						|
</manualpage>
 | 
						|
 |