mirror of
https://github.com/apache/httpd.git
synced 2025-11-12 14:01:05 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1554267 13f79535-47bb-0310-9956-ffa450edef68
269 lines
12 KiB
Plaintext
269 lines
12 KiB
Plaintext
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision : 1330980 -->
|
|
<!-- 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.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_dav.xml.meta">
|
|
|
|
<name>mod_dav</name>
|
|
<description>Fonctionnalité de création et gestion de versions de
|
|
documents via le web (<a
|
|
href="http://www.webdav.org/">WebDAV</a>)</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_dav.c</sourcefile>
|
|
<identifier>dav_module</identifier>
|
|
|
|
<summary>
|
|
<p>Ce module ajoute à Apache une fonctionnalité <a
|
|
href="http://www.webdav.org">WebDAV</a> de classes 1 et 2
|
|
('Web-based Distributed Authoring and Versioning' ou Création et
|
|
gestion de versions de documents via le web). Il s'agit d'une
|
|
extension du protocole HTTP qui permet de créer, déplacer, copier et
|
|
supprimer des ressources ou collections de ressources sur un serveur
|
|
web distant.</p>
|
|
</summary>
|
|
<seealso><directive module="mod_dav_fs">DavLockDB</directive></seealso>
|
|
<seealso><directive module="core">LimitXMLRequestBody</directive></seealso>
|
|
<seealso><a href="http://www.webdav.org">Ressources WebDAV</a></seealso>
|
|
|
|
<section id="example"><title>Activation de WebDAV</title>
|
|
<p>Pour activer le module <module>mod_dav</module>, ajoutez la ligne
|
|
suivante à un conteneur de votre fichier <code>httpd.conf</code>
|
|
:</p>
|
|
|
|
<highlight language="config">Dav On</highlight>
|
|
|
|
<p>Ceci active le fournisseur de système de fichier DAV implémenté par
|
|
le module <module>mod_dav_fs</module>. Ce dernier doit donc être
|
|
compilé dans le serveur ou chargé au démarrage à l'aide de la
|
|
directive <directive module="mod_so">LoadModule</directive>.</p>
|
|
|
|
<p>En outre, vous devez indiquer où se trouve la base de données des
|
|
verrous DAV via une directive <directive
|
|
module="mod_dav_fs">DavLockDB</directive> dans la section globale de
|
|
votre fichier <code>httpd.conf</code> :</p>
|
|
|
|
<highlight language="config">
|
|
DavLockDB /usr/local/apache2/var/DavLock
|
|
</highlight>
|
|
|
|
<p>Le répertoire contenant le fichier de la base de données des
|
|
verrous doit avoir des droits en écriture pour l'utilisateur et le
|
|
groupe sous lesquels Apache s'exécute et définis respectivement par
|
|
les directives <directive module="mod_unixd">User</directive> et
|
|
<directive module="mod_unixd">Group</directive>.</p>
|
|
|
|
<p>Si vous souhaitez limiter l'accès aux répertoires où DAV est
|
|
activé, vous pouvez ajouter une clause <directive module="core"
|
|
type="section">Limit</directive> dans la section <directive
|
|
module="core" type="section">Location</directive> considérée. Pour
|
|
définir la quantité maximale de données en octets qu'un client
|
|
DAV peut envoyer par requête, vous devez utiliser la directive
|
|
<directive module="core">LimitXMLRequestBody</directive>, car La
|
|
directive <directive module="core">LimitRequestBody</directive>
|
|
"habituelle" n'a aucune incidence sur les requêtes DAV.</p>
|
|
|
|
<example><title>Exemple complet</title>
|
|
<highlight language="config">
|
|
DavLockDB /usr/local/apache2/var/DavLock
|
|
|
|
<Directory /usr/local/apache2/htdocs/foo>
|
|
Require all granted
|
|
Dav On
|
|
|
|
AuthType Basic
|
|
AuthName DAV
|
|
AuthUserFile user.passwd
|
|
|
|
<LimitExcept GET POST OPTIONS>
|
|
Require user admin
|
|
</LimitExcept>
|
|
</Directory>
|
|
</highlight>
|
|
</example>
|
|
|
|
</section>
|
|
|
|
<section id="security"><title>Problèmes concernant la sécurité</title>
|
|
|
|
<p>Etant donné que les méthodes d'accès DAV permettent à des clients
|
|
distants de manipuler des fichiers sur le serveur, vous devez vous
|
|
assurer que votre serveur est bien sécurisé avant d'activer
|
|
<module>mod_dav</module>.</p>
|
|
|
|
<p>Tout répertoire du serveur où DAV est activé doit être protégé
|
|
par une procédure d'authentification. L'utilisation de
|
|
l'authentification HTTP de base n'est pas recommandée. Vous devez
|
|
utiliser au moins l'authentification HTTP à base de condensés
|
|
qu'implémente le module <module>mod_auth_digest</module>.
|
|
Pratiquement tous les clients WebDAV supportent cette méthode
|
|
d'authentification. Vous pouvez aussi utiliser l'authentification de
|
|
base sur une connexion où <a href="../ssl/">SSL</a> est activé.</p>
|
|
|
|
<p>Pour que <module>mod_dav</module> puisse manipuler des fichiers,
|
|
il doit avoir des permissions en écriture sur les répertoires et les
|
|
fichiers qui sont sous son contrôle ; en d'autre termes, c'est
|
|
l'utilisateur et le groupe sous lesquels Apache s'exécute et définis
|
|
par les directives <directive module="mod_unixd">User</directive> et
|
|
<directive module="mod_unixd">Group</directive> qui doivent avoir
|
|
les droits en écriture sur ces fichiers et répertoires. Les fichiers
|
|
nouvellement créés appartiendront aussi à ces utilisateur et groupe.
|
|
Par conséquent, il est important de contrôler l'accès à ce compte.
|
|
Les répertoires DAV sont considérés comme privés du point de vue
|
|
d'Apache, et la modification des fichiers qu'ils contiennent
|
|
autrement que par l'intermédiaire d'Apache (par exemple par FTP ou
|
|
par des outils du niveau du système de fichiers) ne doit pas être
|
|
permise.</p>
|
|
|
|
<p><module>mod_dav</module> peut faire l'objet de plusieurs sortes
|
|
d'attaques par déni de service. La directive <directive
|
|
module="core">LimitXMLRequestBody</directive> permet de limiter la
|
|
quantité de mémoire consommée pour interpréter des requêtes DAV de
|
|
grande taille. En outre, la directive <directive
|
|
module="mod_dav">DavDepthInfinity</directive> permet d'empêcher les
|
|
requêtes <code>PROPFIND</code> concernant un répertoire de très
|
|
grande taille de consommer de grandes quantités de mémoire. Un autre
|
|
type d'attaque par déni de service peut aussi être mené par un
|
|
client qui remplit simplement tout l'espace disque disponible avec
|
|
des fichiers de très grande taille. Etant donné qu'il n'existe aucun
|
|
moyen direct d'éviter ce genre d'attaque dans Apache, vous ne devez
|
|
accorder des accès DAV qu'à des utilisateurs de confiance.</p>
|
|
</section>
|
|
|
|
<section id="complex"><title>Configurations complexes</title>
|
|
|
|
<p>Les requêtes ayant pour but de manipuler des fichiers dynamiques
|
|
(scripts PHP, scripts CGI, etc...) en utilisant
|
|
<module>mod_dav</module> sont courantes. Ce traitement n'est pas
|
|
évident car une requête
|
|
<code>GET</code> va toujours tenter d'exécuter le script, plutôt que
|
|
de télécharger son contenu. Pour éviter cet inconvénient, une
|
|
méthode possible consiste à faire correspondre deux URLs
|
|
différentes au même contenu, l'une d'entre elles servant à lancer le
|
|
script, alors que l'autre peut être utilisée pour le télécharger et
|
|
le manipuler avec DAV.</p>
|
|
|
|
<highlight language="config">
|
|
Alias /phparea /home/gstein/php_files
|
|
Alias /php-source /home/gstein/php_files
|
|
<Location /php-source>
|
|
DAV On
|
|
ForceType text/plain
|
|
</Location>
|
|
</highlight>
|
|
|
|
<p>Avec cette configuration, on peut utiliser
|
|
<code>http://example.com/phparea</code> pour afficher le résultat de
|
|
l'exécution des scripts PHP, et
|
|
<code>http://example.com/php-source</code> pour les manipuler avec
|
|
DAV.</p>
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
<name>Dav</name>
|
|
<description>Active les méthodes HTTP WebDAV</description>
|
|
<syntax>Dav On|Off|<var>nom fournisseur</var></syntax>
|
|
<default>Dav Off</default>
|
|
<contextlist><context>directory</context></contextlist>
|
|
|
|
<usage>
|
|
<p>La directive <directive>Dav</directive> active les
|
|
méthodes HTTP WebDAV pour le conteneur condidéré :</p>
|
|
|
|
<highlight language="config">
|
|
<Location /foo>
|
|
Dav On
|
|
</Location>
|
|
</highlight>
|
|
|
|
<p>La valeur <code>On</code> est en fait un alias vers le
|
|
fournisseur par défaut <code>filesystem</code> implémenté par le
|
|
module <module>mod_dav_fs</module>. Notez que lorsque DAV est activé
|
|
pour un conteneur, on <em>ne peut pas</em> le désactiver pour ses
|
|
sous-conteneurs. Pour un exemple de configuration complet,
|
|
reportez-vous à la <a href="#example">section précédente</a>.</p>
|
|
|
|
<note type="warning">
|
|
N'activez pas WebDAV tant que votre serveur n'est pas sécurisé. Si
|
|
vous passez outre cette recommandation, tout le monde pourra
|
|
enregistrer des fichiers sur votre système.
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>DavMinTimeout</name>
|
|
<description>Durée minimale pendant laquelle le serveur maintient un
|
|
verrou sur une ressource DAV</description>
|
|
<syntax>DavMinTimeout <var>secondes</var></syntax>
|
|
<default>DavMinTimeout 0</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
<context>directory</context></contextlist>
|
|
|
|
<usage>
|
|
<p>Lorsqu'un client demande le verrouillage d'une ressource DAV, il
|
|
peut aussi spécifier une durée au bout de laquelle le verrou sera
|
|
automatiquement supprimé par le serveur. Cette valeur ne constitue
|
|
qu'une requête, et le serveur peut l'ignorer ou informer le client
|
|
qu'il va utiliser une valeur arbitraire.</p>
|
|
|
|
<p>La directive <directive>DavMinTimeout</directive>
|
|
spécifie, en secondes, la durée minimale de verrouillage à renvoyer
|
|
au client. Les Répertoires Web de Microsoft présentent une durée par
|
|
défaut de 120 secondes ; la directive
|
|
<directive>DavMinTimeout</directive> permet de définir une valeur
|
|
supérieure (par exemple 600 secondes), afin de réduire les risques
|
|
de perte du verrou par le client suite à une surcharge du
|
|
réseau.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
<Location /MSWord>
|
|
DavMinTimeout 600
|
|
</Location>
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>DavDepthInfinity</name>
|
|
<description>Autorise les requêtes PROPFIND avec en-tête Depth:
|
|
Infinity</description>
|
|
<syntax>DavDepthInfinity on|off</syntax>
|
|
<default>DavDepthInfinity off</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
<context>directory</context></contextlist>
|
|
|
|
<usage>
|
|
<p>La directive <directive>DavDepthInfinity</directive>
|
|
autorise le traitement des requêtes <code>PROPFIND</code>
|
|
contenant l'en-tête Depth: Infinity. Par défaut, ce type de requête
|
|
n'est pas autorisé, car il peut favoriser les attaques de type Déni
|
|
de service.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|
|
|
|
|