2010-12-30 9 views
0

Ich muss Daten über ein Perl-CGI-Skript auf einem Apache 2.x Ubuntu-Server speichern. Ich möchte darauf zugreifen, dass die Daten nur RW-Zugriff auf Apache (oder das Perl-Skript) und nicht von einer URL zur Verfügung stehen.Sandboxing einer Upload-Zone auf einem Webserver

Eine Lösung besteht darin, eine Datenbank zu installieren. Ich möchte diese Abhängigkeit vermeiden und die Daten in eindeutigen Dateinamen speichern (dieser Ansatz funktioniert für diese Anwendung).

Allerdings bin ich nicht vertraut mit einer guten Möglichkeit, dies zu konfigurieren.

Welche Konfiguration ist erforderlich, um ein 'Sandbox'-Verzeichnis für Datei-IO für einen Webserver einzurichten, ohne eine URL zu diesem Verzeichnis zuzulassen?

+0

Sollte kein Ort so lange tun, wie es außerhalb des Apache-Webstamms ist? –

Antwort

1

Platzieren Sie das Verzeichnis außerhalb des Dokumentstammverzeichnisses (und außerhalb von Alias-Verzeichnissen im Dokumentenstammverzeichnis oder in Verzeichnissen, die über mod_rewrite zugeordnet sind). Apache und das Perl-Skript können diesen Ort lesen/schreiben (vorausgesetzt, der vollständige Pfad zum Ort und natürlich die korrekten Dateiberechtigungen), aber nicht über eine URL.

Es gibt einen wichtigen Vorbehalt! Auf Dateien außerhalb des Dokumentenstamms kann nicht direkt über eine URL zugegriffen werden. Wenn das Perl-Skript jedoch Inhalt aus den Dateien anzeigt, haben Sie die üblichen Sicherheitsbedenken bezüglich XSS und der Offenlegung von Informationen. Sie sollten auch darauf achten, wie sich die "Eindeutigkeit" des Dateinamens oder dessen Fehlen auf dieses Design auswirkt, z. Ein Benutzer könnte versuchen, eine Datei absichtlich zu überschreiben oder Dateinamen zu erraten.