我正在寻找一种方法,通过运行 Apache 2.2.16 的 Linux Debian 服务器共享不同平台的日历WebDAV(mod_dav、mod_dav_fs)支持。
到目前为止,我使用目录的基本身份验证过程。问题是,唯一支持此身份验证方法的软件是雷鸟与闪电插件。Outlook 和不同的网络日历都无法访问。
Apache 身份验证设置如下所示:
<Directory "/var/www/calendar/">
Dav on
ForceType text/plain
Require user test
Options +Indexes
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/htpasswd/calendar.htpasswd
require valid-user
</Directory>
如何通过适当的身份验证来保护 WebDAV 的安全并确保不同的软件支持?
答案1
我发现的唯一方法是不使用身份验证,而是使用包含随机哈希值的长 URL,例如:
https://example.org/somepath/calendarname-averylonghashtoavoidpiracy.ics
这类似于 Google 日历或 Dropbox 在共享时使用的“私人 URL”。虽然不完美,但仍然比容易猜到的 URL 要好。
您可以在服务器上使用符号链接(或别名)使此哈希指向您的文件。这还允许您为不同的客户端使用不同的哈希,并提高安全性,因为您可以在一个哈希被盗用时撤销它,同时保留其他哈希。
如果您的日历包含敏感材料,当然建议使用 HTTPS(例如可通过 Let's Encrypt 免费获取)。