• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dateien sichern vor Fremdzugriff

skizZ

Mitglied
Hallo zusammen,

ich habe folgendes Problem:
Es werden automatisch diverse PDF Dateien erstellt und auf dem Webserver in einem Ordner abgelegt. Der Pfad zur Datei wird in der Datenbank abgespeichert, sowie der dazugehörige benutzer um ihm dadurch im internen Bereich einen Downloadlink anzubieten.

Wie kann ich nun dafür sorgen, dass niemand über den direkten Pfad zu der PDF Datei Zugriff hat? Es soll sichergestellt sein, dass nur eingeloggte Benutzer Zugriff auf den Ordner "PDF" Zugriff haben und nur seine eigenen Dateien herunterladen kann.

EDIT
-----------------
Den Ordner kann ich ja mit ner .htaccess Datei absichern.
Wenn ich aber nun PDFs habe wie folgt...

PDF_1.pdf -> Benutzer1
PDF_2.pdf -> Benutzer2

Und Benutzer1 gibt den Pfad zur PDF von Benutzer2 ein, wie kann ich das abfangen?


Viele Grüße
skizZ
 
Werbung:
Lege die Dateien nach Möglichkeit außerhalb des Docroot-Verzeichnisses deines Webspace ab, wickle aber den Download in jedem Fall über ein PHP-Skript ab, in dem du zuerst die Berechtigung prüfst und dann per passendem Header und Einlesen/Ausgeben der Datei aus dem unerreichbaren Verzeichnis Download auslöst.

Edit: Falls ein Ablegen außerhalb des Docroot-Verzeichnisses nicht möglich ist, nutze die Verzeichnisschutzmechanismen deines Webservers.
 
Zuletzt bearbeitet:
Lege die Dateien nach Möglichkeit außerhalb des Docroot-Verzeichnisses deines Webspace ab, wickle aber den Download in jedem Fall über ein PHP-Skript ab, in dem du zuerst die Berechtigung prüfst und dann per passendem Header und Einlesen/Ausgeben der Datei aus dem unerreichbaren Verzeichnis Download auslöst.

Edit: Falls ein Ablegen außerhalb des Docroot-Verzeichnisses nicht möglich ist, nutze die Verzeichnisschutzmechanismen deines Webservers.

Hallo,

ich kann die Dateien außerhalb meines htdocs Verzeichnis ablegen, da es sich um einen richtigen Server handelt. Ich verstehe in diesem Zusammenhang leider nicht was du mit den passenden Headern meinst und wie genau ich die Berechtigungen zu prüfen habe.

EDIT:
Habs geschafft :-)

skizZ
 
Zuletzt bearbeitet:
Werbung:
Okay. :) Der Vollständigkeit halber:

Mit Header meinte ich eine passende Angabe, die den Browser dazu verleitet einen „Speichern“-Dialog anzuzeigen. Aus dem PHP-Handbuch:

PHP:
<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>

- PHP: header - Manual

Das Prüfen der Berechtigungen müsste entsprechend deinem Rechtemanagement geschehen. Das lässt sich nicht allgemein sagen.

Eine simple Variante liefe wohl über Sessions.

PHP:
if ($_SESSION['user_id'] === $fileOwnerId) {
    // Ausgeben
}
 
Zurück
Oben