Fileserver-Links in DokuWiki

DokuWiki unterstützt seit jeher Links im "UNC" Format (auch SMB oder CIFS Freigaben genannt) in der Form [[\\servername\share]]. Diese werden vom Wiki automatisch in file:\\ Protokoll URLs umgewandelt. Der Mechanismus ist praktisch, um in einer homogenen Umgebung (wie in einem Firmennetzwerk) auf eine zentrale Dateiablage zu verlinken.

Über die Jahre haben sich die Sicherheitsmechanismen der Browser weiter entwickelt - hier gilt es Nutzer soweit wie möglich vor möglichen Angriffsszenarien aus dem offenen Internet zu schützen. Eine dieser Maßnahmen verbietet das Öffnen von file:\\ URLs aus dem Web-Kontext heraus. Lediglich der Internet Explorer hat diese Zugriffe für Seiten in der Zone "Lokales Intranet" bisher erlaubt.

DokuWiki zeigt daher beim Klick auf einen UNC Link in allen Nicht-IE Browsern die Meldung:

Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer.
Der Link kann jedoch durch Kopieren und Einfügen verwendet werden.

Da der Internet-Explorer inzwischen veraltet ist und nicht mehr verwendet werden sollte, werden im Folgenden drei Möglichkeiten aufgezeigt, den Mechanismus auch in anderen Browsern nutzen zu können.

1. Sicherheitseinstellungen abschalten

Die einfachste Methode file:\\ URLs zu erlauben ist das Deaktivieren der entsprechenden Sicherheitseinstellung im jeweiligen Browser des Nutzers.

Dies funktioniert je nach Browser über versteckte Einstellungen oder zu installierende Browser-Extensions:

Natürlich weiß DokuWiki nicht, dass der Nutzer diese Sicherheitseinstellung deaktiviert hat und zeigt die Warnung weiterhin an. Diese kann für das gesamte Wiki durch das entsprechende Anlegen einer lokalen Sprachdatei in conf/lang/de/lang.php deaktiviert werden:

<?php
$lang['js']['nosmblinks'] = '';  
</code>

Vorteile:

  • funktioniert mit Bord-Mitteln und ohne großen IT-Aufwand

Nachteile:

  • die Sicherheitseinstellung wird für den gesamten Browser deaktiviert - also auch im offenen Internet
  • die Einstellung muss in jedem einzelnen Browser, für jeden Mitarbeiter deaktiviert werden

2. Fileserver via Web

Eine Alternative kann es sein, den Inhalt des File-Servers einfach auch per HTTP(s) verfügbar zu machen. So könnte ein Webserver direkt auf dem Fileserver es erlauben statt \\servername\share einfach [[https://servername/share]] zu nutzen.

Alternativ ist es auch möglich, eine Fileserver-Freigabe einfach auf dem Webserver, der das Wiki betreibt zu mounten. Wenn man sich an das Benamungsschema von DokuWiki hält, kann dieser Mount sogar direkt im data/media Verzeichnis erfolgen.

Vorteile:

  • es werden keine Sicherheitseinstellungen verändert

Nachteile:

  • aufwändig durch die IT aufzusetzen
  • Zugriffsberechtigungen sind nur bedingt abbildbar
  • Dateien werden runtergeladen und erzeugen Kopien, statt diese am zentralen Ort zu bearbeiten

3. Protokoll-Handler

Moderne Browser und Betriebssysteme erlauben das Registrieren eigener Protokoll-Handler. So wie der Browser weiß, wie mit https:// URLs umzugehen ist, können installierte Programme eigene Protokolle definieren. So weiß der Browser beispielsweise, dass bei einem Klick auf einen skype:// Link der Skype Client zu öffnen ist.

Dieser Mechanismus kann für die Behandlung von lokalen Netzwerklinks verwendet werden. Hierfür muss ein entsprechendes Client-Programm auf dem Betriebssystem der Nutzer installiert werden und als Handler, beispielsweise, für ein locallink:// Protokoll registriert werden. Das Client-Programm öffnet dann den entsprechenden Fileserver Link.

Das Programm muss ähnlich wie in 1. für jeden Nutzer installiert werden. Das automatische Installieren von Programmen in großen IT-Netzwerken ist jedoch ein gelöstes Problem. Wo dies nicht zentral möglich ist, kann der Download und die Installation des Programmes direkt aus dem Wiki heraus angeboten werden.

Da das Client-Tool für das Öffnen des Links verantwortlich ist, ist es möglich, hier potenziell auch zusätzliche Features zu implementieren. So könnte beispielsweise darauf reagiert werden, dass eine verlinkte Datei nicht existiert und stattdessen der übergeordnete Ordner geöffnet werden.

In einer Machbarkeitsstudie hat CosmoCode einen ersten Prototypen für einen solchen Protokoll-Handler entwickelt. Dieser funktioniert bereits für Windows und Linux Systeme.

Für einen Echteinsatz sind jedoch weitere Schritte notwendig:

  • Client:
    • Mac-Unterstützung
    • Update Mechanismus
  • Entwicklung eines DokuWiki Plugins für die simple Integration:
    • Einklinken in das UNC Protokoll-Handling und Erzeugen der korrekten locallink:// URLs
    • Erkennung ob der Protokoll-Handler im Browser des Nutzers installiert ist
    • Anbieten des Client-Downloads in der richtigen Betriebssystem-Version
  • Tests und Dokumentation

Wir gehen von einem zusätzlichen Aufwand von ca. 3 bis 4 Tagen aus. Bitte sprechen Sie uns an, wenn diese Lösung für Sie interessant ist.

Vorteile:

  • es werden keine Sicherheitseinstellungen verändert
  • einfaches Setup durch Installation eines DokuWiki Plugins
    • Client Download durch den Nutzer, oder
    • zentrale Installation durch IT

Nachteile:

  • eine Installation des Clients ist auf jedem Nutzersystem nötig