Achim: (PHP) Bestimmte Dateien vor direktem Zugriff schützen

Hallo!

Mit PHP und der GD-Library möchte ich vorgegebene Grafiken beschriften. Die Grafiken und Fonts (ttf) sollen alle in einem Unterverzeichnis liegen. Ist es möglich, mit .htaccess beispielsweise, aber auch anders, den Direktzugriff auf die Originalgrafiken und Fonts zu sperren? Also dass man via die PHP-Seite zugreifen darf, aber nicht anders, beispielsweise durch Eingabe des vollständigen Pfades zum Bild / zum Font?

Danke im voraus für Antworten.

Gruß, Achim

  1. Hallo Achim,

    wenn die Grafiken außerhalb der Document Root oder in einem  entsprechend mit .htaccess markierten Verzeichnis liegen, lässt der HTTP-Deamon den direkten Zugriff auf die Bilder nicht zu. Dir müsstest Dir dann zwei Scripte schreiben. Eines, das eine Referenz auf die Bilder erzeugt, die an den Browser ausgegeben wird und eines, das passende Bild zu der Referenz dann per readfile() ausliefert.

    Dazwischen sollte man eine Datenbank legen, die die Referenz in den Pfad auf das Bild umsetzt, und ggf. noch prüft, ob der User berechtigt ist, zuzugreifen.

    Im HTML-Code im Browser kommt dann eben folgendes an:

    <img src="bild.php?ID=12345"></img>

    Das PHP-Script sollte vor dem Bild noch den passenden Doc-Type per Header() senden und dann das Bild übertragen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    1. Moin!

      wenn die Grafiken außerhalb der Document Root oder in einem  entsprechend mit .htaccess markierten Verzeichnis liegen, lässt der HTTP-Deamon den direkten Zugriff auf die Bilder nicht zu. Dir müsstest Dir dann zwei Scripte schreiben. Eines, das eine Referenz auf die Bilder erzeugt, die an den Browser ausgegeben wird und eines, das passende Bild zu der Referenz dann per readfile() ausliefert.

      readfile() ist hier fehl am Platze, weil die Grafiken mit der gdlib beschriftet werden sollen. Also eher ImageCreateFromJPG() und ImageJPEG().

      Was den Zugriffs-Schutz angeht:
      .htaccess-Datei
      ---schnipp---
      Order Deny,Allow
      Deny from all
      ---schnapp---
      in das zu sperrende Verzeichnis.

      Dazwischen sollte man eine Datenbank legen, die die Referenz in den Pfad auf das Bild umsetzt, und ggf. noch prüft, ob der User berechtigt ist, zuzugreifen.

      Warum Datenbank? Es geht doch nur darum, die Bilder dynamisch zu beschriften. Von Auslieferung nur für berechtigte User war keine Rede. :)

      - Sven Rautenberg

      --
      "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)