Apache WebDAV

posted by Webby0815
Feb 28

Das Modul mod_dav stellt WebDAV-Funktionalität zur Verfügung.
WebDAV bedeutet Web-based Distributed Authoring and Versioning und ist eine Erweiterung des HTTP-Protokolls.
Es erlaubt, Dateien und Verzeichnisse direkt via HTTP auf dem webserver zu bearbeiten.
Mögliche Funktionen sind u.a. das Erzeugen, Verschieben oder Kopieren von Dateien oder auch das Löschen von Ressourcen direkt auf dem Server, vorrausgesetzt, es wird ein entsprechender Client eingesetzt.
Macromedia Dreamweaver, Adobe GoLive und Microsoft Office z.B. sind WebDAV fähig.

Zum Modul mod_dav gehört noch das Modul mod_dav_fs, es arbeitet als Support Modul für mod_dav und ermöglicht es diesem auf Ressourcen innerhalb des Server Filesystems zuzugreifen.
I.R. sollte man beide Module einbinden.
Eingebunden werden die Module mit

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

und aktivieren kann man DAV z.B. so

DavLockDB /usr/local/apache/var/DavLock

<Location />
Dav On

AuthType Basic
AuthName DAV
AuthUserFile user.passwd

<LimitExcept GET POST HEAD OPTIONS>
require user admin
</LimitExcept>
</Location>

In diesem Beispiel wird die Basic-Authentifikation verwendet.
Aus Sicherheitsgründen sollte man aber besser die Digest-Authentifikation oder SSL verwenden.

Um zu verhindern, dass verschiedene User gleichzeitig Änderungen an der selben Datei vornehmen, verwendet das DAV Modul eine Lock-Datenbank. In welcher Datei diese Datenbank abgelegt werden soll, wird dem DAV-Modul mit der Direktive DavLockDB mitgeteilt.
Als Argument wird dabei der Dateiname angegeben.

DavLockDB /usr/local/apache/var/DavLock

Dem DAV-Modul stehen noch die Direktiven DavDepthInfinity und DavMinTimeout zur Seite.
Solange DavDepthInfinity nicht auf on gesetzt ist, wird der Apache Anfragen mit der HTTP-Methode PROPFIND, bei denen der Header Infinity übermittelt wird, ignorieren.
Eine solche Anfrage birgt die Möglichkeit eines DOS Angriffs.
DavDepthInfinity steht standardmäßig auf off
Greift ein DAV-Client auf eine Ressource zu, so kann er angeben, für wie lange er ein Ressource-Lock auf diese Ressource haben will.
Wird die Direktive DavMinTimeout mit einem Wert größer als dem default Wert 0 konfiguriert, wird diese Ressource-Lock Anfrage des DAV-Clients ignoriert und stattdessen der konfigurierte Wert vorgegeben.
Standardmäßig hat DavMinTimeout den Wert 0.
Die Angabe des Timeout-Wertes erfolgt in Sekunden.

<Location />
Dav On
DavMinTimeout 200
...
...
</Location>


Leave a Reply

*