Tipps

Mediendateien vor Zugriff schützen

WordPress-Mediendateien vor Zugriff schützen

WordPress bietet von sich aus keinen Zugriffsschutz von Dateien, die Sie in die Mediathek hochgeladen haben. Eine Bild- oder PDF-Datei, die Sie in einem privaten Bereich hochgeladen haben, liegt offen im Web und kann verlinkt oder von Google indexiert werden. Wir zeigen Ihnen eine einfache Lösung, wie Sie Ihre WordPress-Dateien der Mediathek schützen und den direkten Zugriff verhindern.

Was ist das Problem?

Dateien, die Sie über eine Seite oder direkt in die Mediathek Ihrer Website hochladen, liegen völlig ungeschützt im Unterverzeichnis /wp-conten/uploads Ihrer WordPress-Website. Kennt jemand den Link, können die Dateien einfach von Ihrem Server heruntergeladen und verbreitet werden. Auch Google hat Zugriff auf die Dateien Ihrer Mediathek und kann sie so in der Suchmaschine auffindbar machen.

Dieser Umstand ist dann problematisch, wenn Sie den Zugriff auf Dateien zum Beispiel in einem Intranet oder einem Mitgliedsbereich nur einer bestimmten Klientel gewähren möchten. Die uns bekannten Erweiterungen, die einen geschlossenen Bereich auf Ihrer Website ermöglichen, schützen regelmäßig nur die textlichen Inhalte der Seiten oder Beiträge, nicht aber die eingebundenen Medien und Dateien vor externen Zugriff. Das gilt natürlich auch für den von WordPress angebotenen Funktionen „Passwort-Schutz“ oder „Privat“.

Einfacher Zugriff-Schutz ohne Plug-in

Wie schon angedeutet, gibt es zwar einige Plug-in-Lösungen (zum Beispiel Download Manager, Prevent Direct Access – Protect WordPress Files oder WP Content Copy Protection), doch nicht selten sind die Lösungen zu komplex oder zu teuer, wenn man zum Beispiel nur einen Datei-Typ vor dem unberechtigten Zugriff schützen möchte.

Für ein Kundenprojekt haben wir uns deshalb auf die Suche nach einer in der Umsetzung und Bedienung einfachen Lösung gemacht und sind auf dem Blog von Jeff Starr und seinem im Beitrag Protect WordPress Media Files veröffentlichten Lösungsansatz, fündig geworden.

Jeff hat eine einfache Methode gefunden, die den Zugriff auf Mediendateien von einem anderen Ort als der Website selbst verhindert. Wir haben den Code für unsere Bedürfnisse auf den Schutz von PDF-Dateien angepasst. Den original-Code finden Sie hier.

Wichtiger Hinweis: Bei dem Code von Jeff handelt es sich um ein Experiment, das auf seiner WordPress-Installation und bei einem Kunden von uns bestens funktioniert. Wir übernehmen aber für den Code keine Haftung: Sie setzen die Lösung auf eigenes Risiko um!

Vor- und Nachteile der Lösung

Es gibt einige Vor- und Nachteile solcher Techniken. Je nach Ihren Bedürfnissen können Vorteile auch zu Nachteilen werden.

Zunächst die Vorteile

  • Schützt PDF vor hotlinking
  • Verhindert direkten PDF-Zugriff (d.h. kein Referrer)
  • Verhindert, dass PDF in den Ergebnissen der Google-Suche angezeigt werden
  • Hilft sicherzustellen, dass PDF-Dateien nur auf Ihrer Website angezeigt werden
    Super einfach, leicht und schnell

Und die Nachteile

  • Verhindert, dass PDF in den Ergebnissen der Google-Suche angezeigt werden – Der Schutz gilt für alle PDF-Dateien in der WordPress-Mediathek
  • Verhindert direkten PDF-Zugriff (d.h. kein Referrer)
  • Die Lösung ist experimentell und nicht umfassend getestet (Nutzung auf eigene Gefahr!)
  • Es ist möglich, dass böswillige Akteure den Referrer fälschen/spoofing
  • Voraussetzung ist ein Apache-Webserver (das ist allerdings die Regel)

Wie der Code funktioniert

Der Code in Ihrer .htaccess-Datei im Hauptverzeichnis von WordPress prüft zunächst, ob die Anfrage der PDF-Datei für eine Datei innerhalb der Medienbibliothek gilt, insbesondere für eine Datei im Verzeichnis /wp-content/uploads/. Ist das der Fall, prüft der Code, ob der Referrer mit der Domain Ihrer Website übereinstimmt. Wenn dies nicht der Fall ist, stammt die Bildanforderung von einer anderen Website oder anderen Quelle (E-Mail) und wird daher blockiert. Diese einfache Lösung funktioniert, weil die Website, die die Bilder hostet, immer der Referrer für Bildanfragen ist.

Der .htacess-Code

Falls nicht schon vorhanden, legen Sie im Hauptverzeichnis Ihrer WordPress-Installation eine .htaccess-Datei an und fügen möglichst direkt oben den folgenden Code ein (Denken Sie in Ihrem eigenen Interesse zunächst an eine Sicherungskopie der Datei):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} /wp-content/uploads/ [NC]
RewriteCond %{HTTP_REFERER} !^https://ihre-domain.de [NC]
RewriteRule .pdf / [R=301]
</IfModule>

Dieser Code schützt alle Dateien mit der Endung .pdf vor externen Zugriff. Falls jemand den Link zum Beispiel per E-Mail an einen Dritten weiterleitet und der Empfänger klickt auf den Link, landet er auf einer 404-Fehler-Seite, falls vorhanden.

Fazit

Wir standen in einem Kundenprojekt vor der Herausforderung, PDF-Datei vor externen Zugriffen zu schützen. Die von Jeff erdachte Lösung, haben wir an unseren Bedarfsfall leicht anpassen können. Sie bietet einen anscheinend perfekten Schutz vor fremdem Zugriff der in einem geschlossenem Bereich angebotenen PDF-Dateien. Und unser Kunde muss keine komplexen Plug-in-Lösungen bezahlen und mühevoll erlernen.

turned_in_not, ,

3 Kommentare. Wir freuen uns über Ihren Kommentar

  • Hallo, danke für IHre kalre Erlätuerung!
    Ich habe ein ähnliches Problem möchte aber nur PDFs in einem bestimmten Ordner schützen. Würde es reichen in der Zeile RewriteCond %{REQUEST_URI} /wp-content/uploads/
    den Ordnernamen anzuführen, um nur diesen Ordner zu schützen und dort alle betreffenden PDFs zu versammeln? Und funktioniert das dann auch für den User der Website oder nur externen Zugriff?
    Wie organisieren Sie dann die 404-Seite? Kann man noch eine spezifische eigene gestalten (nur für diesen Ordner)?

    Hintergrund: einen passwortgeschützten Bereich für PDF-Dateien, die erst nach Passworteingabe einsehbar sind?

    Antworten

Wir freuen uns über Ihren Kommentar!

Ihre E-Mail-Adresse wird nicht veröffentlicht.

Fill out this field
Fill out this field
Bitte geben Sie eine gültige E-Mail-Adresse ein.
You need to agree with the terms to proceed

Elbnetz GmbH Konzeption, Umsetzung und Hosting von WordPress-Websites und WooCommerce-Shops Anonym hat 4,95 von 5 Sternen 40 Bewertungen auf ProvenExpert.com