<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1908894 -->
+<!-- English Revision: 1911715 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<modulesynopsis metafile="mod_dav.xml.meta">
<name>mod_dav</name>
-<description>Fonctionnalité de création et gestion de versions de
+<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>
<identifier>dav_module</identifier>
<summary>
- <p>Ce module ajoute à Apache une fonctionnalité <a
+ <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
+ ('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
+ 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>
<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>
+ 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
+ <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
+ <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>
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
+ <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"
+ <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
+ 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>
+ "habituelle" n'a aucune incidence sur les requêtes DAV.</p>
<example><title>Exemple complet</title>
<highlight language="config">
</section>
-<section id="security"><title>Problèmes concernant la sécurité</title>
+<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
+ <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
+ 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
+ <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>
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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>
+ 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
+ <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
+ é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">
</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/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>
+<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>
+ méthodes HTTP WebDAV pour le conteneur condidéré :</p>
<highlight language="config">
<Location "/foo">
</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
+ 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>
+ 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
+ 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.
+ 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>DavBasePath /repos/</default>
+<contextlist><context>directory</context></contextlist>
+<compatibility>Disponible à partir de la version 2.5.1 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>
+
+ <highlight language="config">
+<LocationMatch "^/repos/">
+ Dav svn
+ DavBasePath /repos
+ SVNParentPath /var/svn
+</LocationMatch>
+ </highlight>
+</usage>
+</directivesynopsis>
+
<directivesynopsis>
<name>DavMinTimeout</name>
-<description>Durée minimale pendant laquelle le serveur maintient un
+<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>
<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
+ 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>
+ 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">
<directivesynopsis>
<name>DavDepthInfinity</name>
-<description>Autorise les requêtes PROPFIND avec en-tête Depth:
+<description>Autorise les requêtes PROPFIND avec en-tête Depth:
Infinity</description>
<syntax>DavDepthInfinity on|off</syntax>
<default>DavDepthInfinity off</default>
<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
+ 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>