6.18. Securing WebDAV

. Problem

You want to allow your users to upload and otherwise manage their web documents with WebDAV, but without exposing your server to any additional security risks.

. Solution

Require authentication to use WebDAV:

<Directory "/www/htdocs/dav-test">
    Order Allow,Deny
    Deny from all
    AuthDigestFile /www/acl/.htpasswd-dav-test
    AuthDigestDomain /dav-test/
    AuthName "DAV access"
    Require
    Satisfy any
</Directory>

. Discussion

Because WebDAV operations can modify your server's resources and mod_dav runs as part of the server, locations that are WebDAV-enabled need to be writable by the user specified in the server's User directive. This means that the same location is writable by any CGI scripts or other modules that run as part of the Apache server. To keep remote modification operations under control, you should enable access controls for WebDAV-enabled locations. If you use weak controls, such as user-level authentication, you should use Digest authentication rather than Basic, as shown in the Solution.

The contents of the <Directory> container could be put into a dav-test/.htaccess file, as well. Note that the authentication database (specified with the AuthDigestFile directive) is not within the server's URI space, and so it cannot be fetched with a browser nor with any WebDAV tools.

Your authentication database and .htaccess files should not be modifiable by the server user; you don't want them getting changed by your WebDAV users!

. See Also