kitDirList - öffentlicher und geschützter Zugriff auf Verzeichnisse

kitDirList - Extension for KeepInTouchkitDirList - Extension for KeepInTouch:

Häufig sind gerade die Dinge, die zunächst völlig unkompliziert erscheinen in der Praxis doch nicht so einfach zu handhaben.

Grundsätzlich sind Webseiten hervorragend dazu geeignet Ihren Besuchern Informationen zur Verfügung zu stellen und Dateien weiterzureichen. Im Folgenden entwickeln wir ein kleines Szenario, das typisch für die Entwicklung von Webseiten ist:

  • Zunächst wollen Sie den Besuchern Ihrer Website den aktuellen Produktkatalog zum Download anbieten, hierzu verlinken Sie einfach an den gewünschten Stellen auf den Katalog. Das ist unkompliziert und rasch erledigt.
  • Ihr online Angebot wächst und gedeiht und mittlerweile gibt es mehrere unterschiedliche Kataloge. Anstatt nur auf einen bestimmten Fachkatalog zu verlinken führen Sie Ihre Kunden jetzt in einen Downloadbereich wo sie sich den gewünschten Katalog aussuchen und herunterladen können. Dies kann eine einfache Liste sein oder auch komfortabler mit Hilfe einer Download Galerie gelöst werden. Eine weitere sehr einfache Lösung ist die Verwendung des kitDirList Vorgängers DirList: dieses Add-on stellt den Inhalt eines beliebigen Verzeichnis auf Ihrem Server ähnlich wie ein Windows Explorer zum Download zur Verfügung.
  • Inzwischen betreuen Sie über Ihre Website nicht nur Ihre Direktkunden sondern auch Wiederverkäufer. Dazu haben Sie einen geschützten Bereich aufgebaut, in den sich die Verkäufer einloggen können und in dem Sie zusätzliche Informationen zur Verfügung stellen. Die unterschiedlichen Preislisten wollen Sie ebenfalls zum Download anbieten. Doch jetzt kommen Ihnen - völlig zu Recht - Bedenken: Sind diese Preislisten sicher?  Lässt sich verhindern, dass Dritte auf diese Dateien zugreifen können?

Sofern Sie die Dateien wie bisher auf Ihrem Server bereitstellen muss der neugierige Surfer lediglich die Adresse der Datei kennen – häufig genügt auch eine Vermutung – und schon kann er direkt darauf zugreifen.

Das Problem liegt darin, dass die Verzeichnisse auf Ihrem Webserver nicht geschützt sind, jeder kann unkontrolliert auf die Inhalte zugreifen! Wenn Sie sich mit dieser Thematik auseinandersetzen stellen Sie rasch fest, dass es entweder sichere oder benutzerfreundliche Lösungen gibt, aber keine sicheren, flexiblen und einfach zu handhabenden Möglichkeiten.

Es sei denn, Sie verwenden kitDirList.

Überblick und Programmbeschreibung

Die Funktionserweiterung kitDirList stellt Ihnen auf eine sehr einfache Weise einen Zugriff auf Verzeichnisse Ihres Webservers zur Verfügung. Hierzu fügen Sie an der gewünschten Stelle lediglich ein Droplet ein, eine aufwendige Installation oder Konfiguration ist nicht erforderlich.

Projekt EMDie Open Source Entwicklung von kitDirList wird durch das
Projekt EM unterstützt.

Der Zugriff auf die bereitgestellten Dateien kann sowohl öffentlich als auch über einen vollen Verzeichnisschutz erfolgen, ein unbefugter Zugriff ist in diesem Fall nicht möglich.

Die Extension kitDirList wurde speziell für das Customer Relationship Management (CRM)  KeepInTouch (KIT) entwickelt. Die Erweiterung kann jedoch auch ohne KeepInTouch verwendet werden, der Funktionsumfang ist in diesem Fall eingeschränkt.

Die Installation erfolgt als Funktionserweiterung (Snippet) von WebsiteBaker, während der Installation wird ein Droplet zum System hinzugefügt, auf das Sie bei der Bearbeitung von Seiten direkt zugreifen können.

Beim ersten Aufruf des Droplets erzeugt kitDirList im /MEDIA Verzeichnis Ihres Webspace einen neuen Ordner /kit_protected. Dieser Ordner wird von kitDirList mit Hilfe einer .htaccess sowie einer .htpasswd geschützt. Ein externer Zugriff auf Dateien in diesem Ordner ist nicht möglich – probieren Sie es ruhig aus, sie werden in diesem Fall nach einem Benutzernamen sowie nach einem Passwort gefragt. Sie selbst verfügen über einen direkten Zugriff auf die Verzeichnisinhalte über die Medienverwaltung im WebsiteBaker Backend oder über das von Ihnen verwendete FTP Programm und benötigen keinen externen Zugang.

Sollen Daten geschützt zur Verfügung gestellt werden, legen Sie diese einfach in einem Unterverzeichnis des Ordner /kit_protected ab – der Schutz erstreckt sich auf alle Ordner und Dateien, die sich unterhalb des Verzeichnis /kit_protected befinden.

Sie können mit kitDirList auch beliebige andere Ordner im /MEDIA Verzeichnis bereitstellen, der Zugriff erfolgt in diesem Fall öffentlich, die Dateien werden nicht geschützt.

Systemvoraussetzungen und Download

Systemvoraussetzungen:

  • WebsiteBaker 2.8.1
  • PHP 5.2 oder höher
  • dbConnect_LE installiert
  • Dwoo installiert
  • empfohlen: KeepInTouch installiert
  • UTF-8 Zeichensatz wird verwendet

Download kitDirList

Parameter und Anwendungsbeispiele

Die Steuerung von kitDirList erfolgt vollständig über das automatisch installierte Droplet:

[[kit_dirlist]]

Mit diesem „nackten“ Aufruf ohne Angabe von Parametern zeigt Ihnen kitDirList alle Dateien an, die sich auf der obersten Ebene ihres /MEDIA Verzeichnis befinden.

Zeigt kitDirList wirklich alle Dateien an? Nein, nicht alle. Es gibt ein paar Dateien die kitDirList aus Sicherheitsgründen grundsätzlich ausblendet, dies sind alle Systemdateien die mit einem Punkt beginnen (.htaccess, .htpasswd …) sowie alle Programmdateien (*.php, *.php5 …). Bei einem öffentlichen Zugriff sehen Sie zudem das Verzeichnis /kit_protected nicht.

Wenn Sie Parameter neu einfügen oder verändern, sichern Sie jeweils die Seite und sehen Sie sich die Seite im Frontend an. kitDirList gibt Ihnen im Frontend auch alle Fehlermeldungen und Hinweise aus, falls Parameter unvollständig sind oder Bedingungen nicht erfüllt sind. Kontrollieren Sie die Ausgabe auf jeden Fall!

Die Reihenfolge der Parameter spielt keine Rolle. Der erste Parameter den Sie an das Droplet kit_dirlist anfügen wird mit einem ? eingeleitet. Auf den Parameter folgt ein = Zeichen und danach der Wert oder die Werte, die dem Parameter zugewiesen werden sollen. Jeder weitere Parameter wird mit einem kaufmännischen & angefügt.

kitDirList unterstützt die folgenden Parameter:

  • media – Angabe des anzuzeigenden Verzeichnis im /MEDIA Ordner
  • sort – Sortierung des Verzeichnis: sort=asc : aufsteigend, sort=desc : absteigend, Standard ist aufsteigend von a-z
  • recursive – Unterverzeichnisse einschließen: recursive=true oder recursive=false, Standard ist keine Unterverzeichnisse anzeigen
  • include – Dateiendungen von Dateien die angezeigt werden sollen, alle anderen Dateien werden ausgeblendet. Angegeben werden nur die Dateiendungen ohne Punkt oder Wildcards (Joker), z.B.: include=pdf,jpg,gif,tif : zeigt alle *.pdf, *.jpg, *.gif und *.tif Dateien an.
  • exclude – Dateiendungen von Dateien die ausgeblendet werden sollen, alle anderen Dateien werden angezeigt. Angegeben werden nur die Dateiendungen ohne Punkt oder Wildcards (siehe include). Die Parameter include und exclude sollten nicht gleichzeitig verwendet werden, da sie sich gegenseitig ausschließen.
  • kit_internGeschützter Zugriff. Angabe von INTERNEN Kategorien in KeepInTouch (KIT), z.B. kit_intern=catWBUser. Geben Sie mehrere interne Kategorien durch ein Komma getrennt an.
  • kit_newsGeschützter Zugriff. Angabe von NEWSLETTER Kategorien in KIT, z.B. kit_news=newsNewsletter
  • kit_distGeschützter Zugriff. Angabe von VERTEILER Kategorien in KIT, z.B. kit_dist=distControl
  • wb_groupGeschützter Zugriff. Angabe von WebsiteBaker Gruppen. Sie können mehrere Gruppen angeben, trennen Sie diese durch ein Komma. Beachten Sie bitte, dass die Gruppennamen für kitDirList eindeutig lesbar sein müssen, verzichten Sie daher bei den Gruppennamen möglichst auf Leerzeichen, Sonderzeichen und Umlaute. Mit einem Namen wie „Häkelgruppe – Redaktion, Nachmittagsgruppe (Mechthild Fadenspur)“ kommt kitDirList definitiv nicht zurecht, besser wäre z.B. „Haekelgruppe_Fadenspur“ – das Eintragen der Parameter geht Ihnen dadurch auch leichter von der Hand.
  • copyright – der Copyright Hinweis von kitDirList kann mit copyright=false ausgeschaltet werden. Bitte denken Sie nicht nur bei einem gewerblichen Einsatz von kitDirList über eine aktive und/oder finanzielle Unterstützung der verschiedenen Open Source Projekte der phpManufaktur nach.

kitDirList - Droplet einfügen

Fügen Sie das Droplet kit_dirlist auf der gewünschten Seite an der Stelle ein, an der die Verzeichnisliste angezeigt werden soll.

Anwendungsbeispiel - Öffentlicher Zugriff mit kitDirList auf Grafiken, die hier in diesem Artikel verwendet werden:

Reihenfolge umkehren Dateien Größe Datum
image/jpeg datenuebertragung_300.jpg 21.84 KB 17.05.2012 - 09:25
image/jpeg kit_dirlist_300.jpg 13.64 KB 17.05.2012 - 09:25
image/jpeg kit_dirlist_beispiel.jpg 19.83 KB 17.05.2012 - 09:25
image/jpeg kit_dirlist_droplet_704.jpg 29.37 KB 17.05.2012 - 09:25
image/jpeg projekt-em.jpg 7.56 KB 17.05.2012 - 09:25

Sie können sich auch ansehen, wie kitDirList bei einem geschützten Zugriff funktioniert.

Was ist zu beachten?

Bei einem geschützten Zugriff erwartet kitDirList, dass sich das anzuzeigende Verzeichnis unterhalb von /media/kit_protected befindet. Sie können kein frei zugängliches Verzeichnis mit einem geschützten Zugriff versehen.

Bei einem geschützten Zugriff zeigt kitDirList das Verzeichnis nicht unmittelbar an, der Besucher wird aufgefordert, sich zunächst anzumelden.

Die Anmeldung selbst erfolgt – abhängig von den Parametern – entweder über den Login Dialog von KeepInTouch (KIT) oder über den Anmeldedialog von WebsiteBaker. Nach dem Login haben die Besucher Zugriff auf die freigegebenen Daten. Alle Dateizugriffe erfolgen beim geschützten Zugriff über eine spezielle Programmdatei von kitDirList. Diese prüft ob der Aufrufer angemeldet und berechtigt ist, die Datei herunterzuladen und nur wenn dies der Fall ist, werden die Daten zur Verfügung gestellt. In allen anderen Fällen wird der Zugriff abgewiesen (HTTP Fehlercode 403: Zugriff verweigert). Probieren Sie dies ruhig aus.

Dateibeschreibungen verwenden

Der Dateiname alleine ist häufig nicht ausreichend um eine Datei zu beschreiben. Ergänzende Informationen sind hilfreich und unterstützen die  Besucher Ihrer Website bei der Auswahl des richtigen Download. Tooltips gehören mittlerweile zum Standard und werden von Ihren Kunden sicherlich gerne angenommen.

In der obigen Beispielanwendung von kitDirList sind für alle Dateien Beschreibungen hinterlegt, zeigen Sie mit der Maus einfach auf den jeweiligen Dateinamen und es wird Ihnen ein Tooltip mit zusätzlichen Informationen angezeigt.

Wie kommt kitDirList an die notwendigen Informationen?

Legen Sie mit einem Editor eine neue Textdatei an und tragen Sie in jeweils einer Zeile zunächst den Dateinamen ein und danach, durch ein Pipe Symbol | getrennt, die gewünschte Beschreibung zu dieser Datei:


kit_dirlist_300.jpg|Dieses Bild zeigt ein Symbol für einen halb aufgeklappten Ordner, der mit einem Schloß gesichert ist.
projekt-em.jpg|Logo der Berliner Agentur "Projekt EM"
kit_dirlist_beispiel.jpg|Screenshot einer Verzeichnisanzeige durch kitDirList

Speichern Sie diese Beschreibungen im UTF-8 Format unter dem Namen dirlist.txt in dem Verzeichnis ab, in dem sich auch die Dateien befinden auf die sich die Beschreibungen beziehen. Wenn kitDirList eine Datei dirlist.txt in dem anzuzeigenden Verzeichnis findet, wird diese automatisch ausgelesen, die Beschreibungen den Dateien zugeordnet und die Datei dirlist.txt bei der Anzeige ausgeblendet.

Es ist nicht erforderlich für jede Datei im Verzeichnis eine Beschreibung anzugeben. Das einzige worauf Sie achten müssen, ist die Datei dirlist.txt im UTF-8 Format zu speichern - dadurch stellen Sie sicher, dass auch Sonderzeichen und Umlaute richtig dargestellt werden. Da doppelte Anführungszeichen (wie in dem obigen Beispiel für eine dirlist.txt) innerhalb des HTML title Tag zu Konflikten bei der Ausgabe führen werden sie von kitDirList durch einfache Anführungszeichen ersetzt.

Anpassungen und Erweiterungen

KeepInTouch (KIT) und die dazugehörigen Erweiterungen (Extensions) bilden ein sehr leistungsfähiges Fundament für die weitere Entwicklung von Anwendungen die exakt auf Ihren Bedarf abgestimmt werden können.

Wenn Sie Fragen zu den Möglichkeiten von KeepInTouch haben oder eine spezielle Lösung suchen, nehmen Sie bitte Kontakt mit mir auf – genau auf Ihren Bedarf abgestimmte Internet Anwendungen sind sehr effizient!

Ralf Hertsch

Gastautoren

Ralf Hertsch, 11.02.2011

Zurück zur Übersicht

Kommentare

02.06.2011

Claudio

Ich suche eine Lösung, so dass die Vorstandsmitglieder auf eine Ordnerstruktur zugreifen können, um gemeinsam Dokumente zu nutzen. kitDirList scheint da eine mögliche Lösung zu sein. Bei der Installation scheint aber UTF-8 eine Voraussetzung zu sein. Gibt's da keine Weg darum herum? Ich habe meine Seite auf 8859-1 aufgebaut. Ein Umbauen auf UTF-8 scheint relativ schwierig zu sein...
RH: Es führt leider kein Weg an UTF-8 vorbei, Sprachdateien, Templates - alle Programmteile von KIT sowie den Erweiterungen verwenden UTF-8.