| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> |
| <!-- English Revision: 1915564 --> |
| <!-- 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>DavBasePath</name> |
| <description>Définir le chemin de la racine du répertoire</description> |
| <syntax>DavBasePath <var>root-path</var></syntax> |
| <default>None</default> |
| <contextlist><context>directory</context></contextlist> |
| <compatibility>Disponible à partir de la version 2.4.58 du serveur HTTP Apache</compatibility> |
| |
| <usage> |
| <p>Si le répertoire DAV est défini en utilisant une correspondance |
| d'expression rationnelle (comme <directive |
| module="core">LocationMatch</directive>), <module>mod_dav</module> ne sera pas |
| en mesure de déterminer de lui-même la racine du répertoire à partir du chemin |
| seul. En conséquence, des fournisseurs tiers (par exemple le module <a |
| href="https://svnbook.red-bean.com/en/1.7/svn.ref.mod_dav_svn.conf.html">mod_dav_svn</a> |
| de Subversion) pourront échouer à traiter des requêtes sans disposer de la |
| valeur correcte de la racine du répertoire.</p> |
| |
| <p>Pour permettre aux fournisseurs de travailler correctement en présence |
| d'une telle configuration, vous devez utiliser |
| <directive>DavBasePath</directive>.</p> |
| |
| <example><title>Exemple</title> |
| <highlight language="config"> |
| <LocationMatch "^/repos/"> |
| Dav svn |
| DavBasePath /repos |
| SVNParentPath /var/svn |
| </LocationMatch> |
| </highlight> |
| </example> |
| </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> |
| |
| <directivesynopsis> |
| <name>DavMSext</name> |
| <description>Activer la prise en charge des extensions de Microsoft</description> |
| <syntax>DavMSext None | [+|-]WDV | All</syntax> |
| <default>DavMSext None</default> |
| <contextlist><context>server config</context><context>virtual host</context> |
| <context>directory</context></contextlist> |
| |
| <usage> |
| <p>La directive <directive>DavMSext</directive> permet d'activer la prise en |
| charge des extensions de Microsoft. Ses valeurs possibles sont :</p> |
| <ul> |
| <li><code>None</code> Aucune extension de Microsoft n'est prise en |
| charge.</li> |
| <li><code>WDV</code> Active la prise en charge de <a |
| href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wdv">MS-WDV</a>. |
| </li> |
| <li><code>All</code> Toutes les extensions de Microsoft implémentées |
| sont prises en charge. La liste se limite cependant à |
| <code>WDV</code> car il s'agit de la seule extension de Microsoft |
| actuellement implémentée.</li> |
| </ul> |
| |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |
| |
| |