Erlauben Sie nur dem Server den Zugriff auf eine Datei.

Erlauben Sie nur dem Server den Zugriff auf eine Datei.

Ich baue ein System, das irgendwann die Anzeige von PDF-Dateien nutzt.

Diese Dateien müssen gesperrt werden, damit sie niemand außerhalb des Systems einsehen kann. Das bedeutet, dass die Dateien nicht direkt aufgerufen werden können, sondern nur vom Server abgerufen werden können, um sie dem Benutzer anzuzeigen.

Ich habe einen Ordner documents, der so aussieht:

.htaccess
test.pdf
test.txt

In meiner .htaccess habe ich Folgendes:

Order Allow,Deny
Deny from all

Dadurch wird der direkte Zugriff auf die Datei blockiert.example.com/documents/test.pdf

Ich muss die Datei trotzdem in meinem System anzeigen können, aber sie kann auch nicht mit der direkten URL geladen werden. Also habe ich direkt außerhalb meines documentsOrdners eine Datei mit dem Namen erstellt load_pdf.php. Diese Datei sieht folgendermaßen aus:

header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;

Und es funktioniert! Ich kann die Datei wie folgt einbetten:

<embed src="/load_pdf.php"></embed>

Allerdings gibt es dabei ein Problem: Jeder kann load_pdf.phpdas PDF-Dokument direkt in seinem Browser laden und dadurch anzeigen, obwohl es eigentlich nicht barrierefrei sein sollte.

Gibt es eine Möglichkeit, load_pdf.phpdas Laden zu blockieren, sofern es nicht vom Server in meinem <embed>Element geladen wird?

Antwort1

Sie können die IP-Adresse angeben, von der aus Sie auf die Dateien zugreifen möchten, oder, wenn Sie sich angemeldet haben, eine bestimmte E-Mail-ID verwenden, um die Anzeige zu ermöglichen.

All dies können Sie am Anfang Ihrer load_pdf.php angeben

Antwort2

Nein.

https://stackoverflow.com/questions/4930914/verhindern-dass-pdf-file-heruntergeladen-und-gedruckt-wird

Letztendlich müssen Sie:

  • Erstellen Sie Bilder für jede Seite

  • Präsentieren Sie diese dem Benutzer im Web über Ihre eigene Schnittstelle (HTML, Flash usw.)

Antwort3

Sie können dies folgendermaßen tun: -

<Files *test.pdf>
    Order allow,deny
    Deny from all
</Files>

<Files *test.txt>
    Order allow,deny
    Deny from all
</Files>

verwandte Informationen