Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Moin,

heute hätte ich mal eine Frage.

Auf einem Webserver liegen in Unterverzeichnissen Dateien, im speziellen Bilder und PDF, die aus Datenschutzgründen nicht für jeden sichtbar sein dürfen.

Nun gibt es einen Login, anhand dem ich erkennen kann, wer welche Datei sehen darf und wer nicht. Das muss auch möglich sein, klar.

Es darf aber nicht möglich sein, über die URL an die Daten heranzukommen, z.B. durch Eingabe von http://www.domain.tld/ordner/bild.jpg

Meine Idee war es, das Verzeichnis mit .htaccess zu schützen ("deny from all"). Dann geht das mit der URL auch korrekterweise nicht mehr, aber dann werden die Bilder auch im IMG-Tag nicht mehr angezeigt.

Wenn ich über das Dateisystem auf die Bilddatei zugreife, klappt das.

Wie müsste ich das machen, das statt <IMG src='ordner/bild.jpg'> etwas wie

<IMG src='ShowPic.php?ordner/bild.jpg'> oder so ähnlich funktioniert, ich also in ShowPic.php eine Schnittstelle zur Verfügung stelle.

Hat jemand eine Idee? Oder sogar einen Codeschnipsel bzw. ein flaches Beispiel? Das wäre echt prima, ich komme nämlich nicht mehr weiter.

Danke im Voraus.

Reinhold

Geschrieben

Moin,

und Danke für die Antwort.

deutlich oversized, aber einfach zu benutzen

Das sieht erstmal gut und umfangreich aus, aber leider, wie du selber sagst, TOTAL mit der Panzerfaust auf den Spatz geschossen :)

und mit vielen zusatzmöglichkeiten:

phpThumb() - The PHP thumbnail generator

Möglichkeiten, die ich leider (jedenfalls momentan und auf die Schnelle) nicht benötige. Kannst du mir vielleicht die 3-5 Zeilen darin sagen, die ich brauchen würde.

Reinhold

Geschrieben

jupp :)

hier paket runterladen:

SourceForge.net: Files

auspacken, komplettes verzeichnis in dein projekt speichern, phpthumb.php aufrufen (edit: respektive bild-url angeben) mit:

phpthumb.php?src=deinbild.jpg

wenn du keine anpassungen in der config machen willst, musst du das bild aus der sicht der phpthumb.php referenzieren.

Geschrieben

Hatte das Problem auch mal ;)

Vereinfacht:


// download.php: Gibt Bilder für alle, andere Dateien jedoch nur für angemeldete Benutzer zurück

// Weder berechtigter User, noch Bilddatei? Raus
if (!$korrektEingeloggt && !fileHasExtension($angeforderteDatei, array("jpg","png","gif","jpeg","bmp","tif","tiff","svg","ico"))
header("location:index.php");

// Datei ausliefern
else {
...
}

// gibt true zurück, wenn die übergebene Datei auf eine der übergebenen Extension endet
function fileHasExtension($filename, $extensions) {
foreach ($extensions as $ext) {
if (strtolower(substr($filename, strlen($filename)-(strlen($ext)+1), strlen($ext)+1)) == ".".strtolower($ext))
return true;
}
else
return false;
}
}[/PHP]

Dann werden Bilder per <img src="download.php?file=foo.jpg" /> auch denen angezeigt, an die sonst keine Dateien ausgeliefert werden dürfen.

Geschrieben

...die Funktion fileHasExtension falsch "zusammengekürzt" -.-

Auf ein Neues:

// gibt true zurück, wenn die übergebene Datei auf eine der übergebenen Extensions endet
function fileHasExtension($filename, $extensions) {
foreach ($extensions as $ext) {
if (strtolower(substr($filename, strlen($filename)-(strlen($ext)+1), strlen($ext)+1)) == ".".strtolower($ext))
return true;
}
return false;
}[/PHP]

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...