previous next up contents index


Subsections


5.3 Informationsmanagement: Intranet File Manager

     

5.3.1 Grundlagen

Anforderungen:

Für die Wartung und Instandhaltung des Datenbestands eines Webservers sind häufig Dateioperationen nötig, wie Kopieren, Verschieben, Ändern, Löschen und der Upload von Dateien in den Datenbereich, aber auch das Management der Verzeichnisstruktur. Heutzutage stehen den Betriebssystemen derartige Anwendungen zur Verfügung, beispielsweise der Windows Explorer oder der Norton Commander. Als Intranet-Applikation sind neben den bekannten Betriebssystem-Problemen auch noch Sicherheitsaspekte zu berücksichtigen. Das Schreiben und Manipulieren von Dateien und Verzeichnissen im Webspace erfordert klar reglementierte Zugriffsrechte und eine korrekte Installation, da sonst alle Daten des Bereichs stark gefährdet sind. Ein derartiges Programm ist in jedem Fall vor dem nichtautorisierten Zugriff mit einem Paßwortschutz zu sichern.

Datenquelle:

Die vorliegende Anwendung ist keine Neuentwicklung. Vielmehr ist sie durch Anpassung eines Programms entstanden, das im Internet unter der Adresse



http://www.halcyon.com/sanford/cgi/sitemgr



zu finden ist. Für den Einsatz im FH-Intranet mußte dieses Skript allerdings erst angepaßt werden. So waren sämtliche Ausgaben an den Web-Browser ins Deutsche zu übersetzen. Weiterhin wurden die Beschriftungen der Aktionsschalter so angepaßt, daß sie aussagekräftig wurden. Der Quellcode ist schließlich so aufbereitet worden, daß er nun übersichtlich und durch Ergänzung der Kommentare leicht verständlich ist. Der gesamte Bereich der Javascript-Routinen ist aus dem Programm ausgekoppelt worden und befindet sich nun gut dokumentiert in einer eigenen Datei, die bei Bedarf gelesen und in das dynamische HTML-Dokument eingefügt wird.

Anwendungsbeschreibung:

Der Intranet File Manager stellt alle Dateien eines Verzeichnisses als Dateiliste zur Verfügung. Hierbei werden dynamisch bei jedem Aufruf Name, Größe, Datum der letzten Änderung sowie der Dateityp aller Files eines Verzeichnisses ermittelt und tabellarisch dargestellt. Zusätzlich besteht die Möglichkeit, einen einzelnen Eintrag mit Hilfe einer Checkbox zu selektieren, um eine bestimmte Operation auszuführen. Außer der Dateiliste enthält das erzeugte Dokument Aktionsschalter für die Aktivierung der einzelnen Operationen Editieren, Entfernen, Verschieben, Kopieren, neue Datei und neues Verzeichnis, sowie ein Textfeld für einen neuen Datei- bzw. Verzeichnisnamen. Ferner wird ein eigenes Formular für den Upload-Vorgang einer lokalen Datei auf den Webserver zur Verfügung gestellt.

Für das Verschieben oder Umbenennen einer Datei oder eines Verzeichnisses bzw. das Kopieren eines Files muß zunächst ein Eintrag aus der Dateiliste ausgewählt (Aktivierung des Optionsschalters) und ein neuer Name angegeben sein (in Form eines vollständigen URL-Pfades). Zur Neuerstellung einer Datei oder eines Verzeichnisses ist der neue Name anzugeben. Der Upload-Vorgang, der nicht von allen Browsern unterstützt wird, erfordert die Eingabe des URL-Pfades und den Namen der Datei auf dem lokalen System. Mit dem Schalter ,,browse... `` ist dieses File im Dateibaum auswählbar.

Eine weitere Anwendungsmöglichkeit des Intranet File Managers ist das Editieren von Textdokumenten mit einer Vorschaumöglichkeit, die allerdings in der beschriebenen Version nicht einwandfrei funktioniert und deswegen abgeschaltet ist.

5.3.2 Sicherheitsaspekte

Zur Sicherheit wird für die Anwendung das Parent-Directory des Skriptverzeichnisses als Toplevel-Verzeichnis festgelegt. Außerhalb (Überhalb) dieses Verzeichnisses sind mit dieser Anwendung keine Manipulationen durchführbar. Weiterhin meldet die Anwendung alle entstandenen Fehler an den Benutzer, so daß illegale Operationen sofort erkennbar sind und gegebenenfalls korrigiert werden können. Für weitere Sicherheitsüberprüfungen werden im erzeugten HTML-Code redundante Javascript- Routinen verwendet, die eine Überprüfung der Eingaben sowie eine frühzeitige Fehlererkennung ermöglichen. Um einen Mißbrauch des Intranet File Managers auszuschließen, sind folgende Aspekte zu berücksichtigen:

5.3.3 Installation

Zur Installation des Intranet File Managers legt man zunächst in dem Verzeichnis, das als Toplevel in Frage kommt, zunächst ein Unterverzeichnis an, dessen Name am besten mit einem Punkt ('. ') beginnt, damit das Verzeichnis für die Anwendung selbst unsichtbar ist. Das Programm verwendet die Zusatzbibliothek CGI.pm , die sich entweder im gleichen Verzeichnis befindet oder mit dem use lib ... - Befehl bekannt gemacht wird.

Das Programmverzeichnis ist in jedem Fall mit einem Paßwortschutz zu versehen. Hier eignet sich der .htaccess -Mechanismus, der von vielen Webservern verwendet wird. Vor der Veröffentlichung der Anwendung ist dieser in jedem Fall auf seine Funktionalität hin zu testen. Für das Programmverzeichnis und die Dateien sind das Lese- und Ausführungsrecht zu setzen. Eigentümer der Dateien und Verzeichnisse ist vorzugsweise der gleiche wie beim Webserver selbst. Im Verzeichnis müssen sich dann das Programmskript, die Javascript-Datei und unter Umständen die CGI.pm -Bibliothek befinden.

5.3.4 Programmbeschreibung

Aufgaben:

Das imgr.cgi -Skript[*] erzeugt dynamisch HTML-Code, der folgende Aufgaben bewältigt:

Programmablauf:

Der Programmablauf läßt sich in verschiedene Phasen zerlegen, die im folgenden beschrieben sind:

Unterprozeduren:

Für die oben genannten Ablaufphasen werden einige wichtige Programmroutinen verwendet, die nachfolgend beschrieben sind. Jede Routine sorgt für eine geeignete Fehlermeldung, die am Ende des Programmlaufs vor der Verzeichnisliste und den Operationsschaltflächen augegeben wird.

translate_url2fs:

get_prefix:

validate_new_url:

validate_item:

create_file_or_dir:

move_or_copy:

delete_item:

upload_file:

preview_changes:

save_changes:

print_edit_page:

print_web_page:

Erzeugen eines HTML-Dokumentes:

Javascript-Anteil:

Der Intranet File Manager verwendet zur Steuerung der Anwendung auf dem Clientrechner einige Funktionen, die in der Programmiersprache Javascript erstellt wurden. Sie werden bei der dynamischen Erstellung des HTML-Dokumentes aus der Datei imgr.js ausgelesen und in den Code eingebettet. Folgende 5 Funktionen werden hierbei verwendet:

selectIndexItem (URL):

Bei der Aktivierung einer Auswahl-Checkbox setzt diese Routine die globale Variable indexItemSelected auf das aktuell gewählte Feld. In der Routine checkMainForm wird diese Variable dann ausgewertet.

selectAction (action):

Beim Klick auf eine der Aktions-Schaltflächen setzt die Routine die globale Variable actionSelected auf den Wert des gewählten Schalters. In der Routine checkMainForm wird diese Variable dann ausgewertet.

checkMainForm:

Die Funktion wird aufgerufen, wenn einer der Aktionsschalter angeklickt wurde. Sie überprüft die Wahl des Schalters (globale Variable actionSelected) und die Existenz der geforderten Eingaben (z.B. Selektion eines Eintrags der Verzeichnisliste, neuer Name für Kopieren oder Verschieben bzw. Erzeugen von Dateien, Verzeichnissen). Sind die benötigten Angaben unvollständig, so werden Warnmeldungen ausgegeben. Für das Löschen wird noch eine extra Bestätigung gefordert.

checkUploadForm:

Überprüft beim Klick auf den 'Upload'-Submit-Button, ob eine Datei auf dem Clientrechner ausgewählt wurde und gibt eine entsprechende Warnung aus.

suggestUploadName:

Schlägt einen URL-Namen vor, wenn das entsprechende Textfeld den Eingabefocus erhält.

5.3.5 Verbesserungsmöglichkeiten

Der Intranet File Manager soll eine Demonstration für die grundlegenden Dateioperationen darstellen. In der Dokumentation zum Original-Programm[*] ist darauf hingewiesen, daß es sich im Grunde um Alpha-Code handelt, das heißt, daß die Anwendung sehr fehlerhaft reagieren kann. Auch ist in keiner Weise gesichert, daß die Anwendung vor Angriffen aus dem Internet sicher ist.

Für den produktiven Einsatz in einem Intranet ist es in jedem Fall vorzuziehen, die Einzelroutinen des File Managers auf mehrere Skripten zu verteilen. Auf diese Weise ist es möglich, den Zugriff auf die Funktionen zu reglementieren: während der Upload und das Ändern oder Löschen von Dokumenten auf einen zugeteilten Bereich für die in Kapitel 2.2 beschriebenen Organisationseinheiten möglich sein muß, so ist die Manipulation der Verzeichnisstruktur für den Administrator sinnvoll, damit der Webspace in gewisser Weise geordnet bleibt und nicht jeder die Struktur verändern kann.

Für die Bedienoberfläche könnten Verbesserungen in der Überarbeitung der Seitenvorschaufunktion liegen, die in diesem Zustand nicht funktioniert und deswegen geblockt wurde. Weiterhin ist in der Editierfunktion ein Abbruch-Schalter zu integrieren, der Änderungen am Dateiinhalt zurücknimmt. Eine Abtrennung dieser Funktionalität in eine eigene Anwendung, die dann um Layout-Mechanismen erweitert wird (z.B. ein eigenes Eingabefeld für einen Dokument-Titel) ist wahrscheinlich geeigneter, als das Skript um derartige Strukturen zu erweitern und es somit langsamer zu machen.

In der vorliegenden Version ist das Programm allerdings verwendbar und, soweit dies absehbar ist, auch einigermaßen sicher. Eine Weiterentwicklung auch zur Verwendung auf anderen Webservern ist in jedem Fall sinnvoll.


previous next up contents index


10/6/1997