<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_dav - Serveur Apache HTTP</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> <script src="../style/scripts/prettify.min.js" type="text/javascript"> </script> <link href="../images/favicon.ico" rel="shortcut icon" /></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> <p class="apache">Serveur Apache HTTP Version 2.4</p> <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Module Apache mod_dav</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_dav.html" title="Français"> fr </a> | <a href="../ja/mod/mod_dav.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_dav.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fonctionnalité de création et gestion de versions de documents via le web (<a href="http://www.webdav.org/">WebDAV</a>)</td></tr> <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>dav_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_dav.c</td></tr></table> <h3>Sommaire</h3> <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> </div> <div id="quickview"><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#dav">Dav</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#davdepthinfinity">DavDepthInfinity</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#davmintimeout">DavMinTimeout</a></li> </ul> <h3>Sujets</h3> <ul id="topics"> <li><img alt="" src="../images/down.gif" /> <a href="#example">Activation de WebDAV</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#security">Problèmes concernant la sécurité</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#complex">Configurations complexes</a></li> </ul><h3>Voir aussi</h3> <ul class="seealso"> <li><code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code></li> <li><code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code></li> <li><a href="http://www.webdav.org">Ressources WebDAV</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="example" id="example">Activation de WebDAV</a></h2> <p>Pour activer le module <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, ajoutez la ligne suivante à un conteneur de votre fichier <code>httpd.conf</code> :</p> <pre class="prettyprint lang-config">Dav On</pre> <p>Ceci active le fournisseur de système de fichier DAV implémenté par le module <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. Ce dernier doit donc être compilé dans le serveur ou chargé au démarrage à l'aide de la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>.</p> <p>En outre, vous devez indiquer où se trouve la base de données des verrous DAV via une directive <code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> dans la section globale de votre fichier <code>httpd.conf</code> :</p> <pre class="prettyprint lang-config">DavLockDB /usr/local/apache2/var/DavLock</pre> <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 <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> et <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code>.</p> <p>Si vous souhaitez limiter l'accès aux répertoires où DAV est activé, vous pouvez ajouter une clause <code class="directive"><a href="../mod/core.html#limit"><Limit></a></code> dans la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> 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 <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code>, car La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> "habituelle" n'a aucune incidence sur les requêtes DAV.</p> <div class="example"><h3>Exemple complet</h3><pre class="prettyprint lang-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></pre> </div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="security" id="security">Problèmes concernant la sécurité</a></h2> <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 <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>.</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 <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>. 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 <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> 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 <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> et <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code> 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><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> peut faire l'objet de plusieurs sortes d'attaques par déni de service. La directive <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> permet de limiter la quantité de mémoire consommée pour interpréter des requêtes DAV de grande taille. En outre, la directive <code class="directive"><a href="#davdepthinfinity">DavDepthInfinity</a></code> 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> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="complex" id="complex">Configurations complexes</a></h2> <p>Les requêtes ayant pour but de manipuler des fichiers dynamiques (scripts PHP, scripts CGI, etc...) en utilisant <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> 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> <pre class="prettyprint lang-config">Alias /phparea /home/gstein/php_files Alias /php-source /home/gstein/php_files <Location /php-source> DAV On ForceType text/plain </Location></pre> <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> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les méthodes HTTP WebDAV</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Dav On|Off|<var>nom fournisseur</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Dav Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr> </table> <p>La directive <code class="directive">Dav</code> permet d'activer les méthodes HTTP WebDAV pour le conteneur condidéré :</p> <pre class="prettyprint lang-config"><Location /foo> Dav On </Location></pre> <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 <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. 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> <div class="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. </div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autorise les requêtes PROPFIND avec en-tête Depth: Infinity</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavDepthInfinity on|off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavDepthInfinity off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr> </table> <p>La directive <code class="directive">DavDepthInfinity</code> permet d'autoriser 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> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée minimale pendant laquelle le serveur maintient un verrou sur une ressource DAV</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavMinTimeout <var>secondes</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavMinTimeout 0</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr> </table> <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 demande, et le serveur peut l'ignorer ou informer le client qu'il va utiliser une valeur arbitraire.</p> <p>La directive <code class="directive">DavMinTimeout</code> permet de spécifier, 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 <code class="directive">DavMinTimeout</code> 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> <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"><Location /MSWord> DavMinTimeout 600 </Location></pre> </div> </div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_dav.html" title="Français"> fr </a> | <a href="../ja/mod/mod_dav.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_dav.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_dav.html'; (function(w, d) { if (w.location.hostname.toLowerCase() == "httpd.apache.org") { d.write('<div id="comments_thread"><\/div>'); var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); } else { d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); } })(window, document); //--><!]]></script></div><div id="footer"> <p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } //--><!]]></script> </body></html>