Wer z. B. einen Mitgliederbereich auf seiner Webseite anbietet oder nicht möchte das Bilder mittels URL direkt auf anderen Webseiten eingebunden werden können, hat verschiedene Möglichkeiten die Inhalte vor Nicht-Mitgliedern zu schützen. Wenn man klassisch mit einer .htaccess– und .htpasswd-Datei arbeitet, schützt man mit den richtigen Einstellungen tatsächlich alle Dateien vor einem Zugriff durch Personen ohne Logindaten.
Allerdings handelt es sich dabei um eine mittlerweile altertümlich wirkende Login-Möglichkeit. Bei dieser hat man auch keine Möglichkeit zur weiteren Gestaltung des Logins hat. Es wird eine solche proprietäre Anmeldemaske des Browser gezeigt:
Alternative zu .htaccess für Login?
Mit Plugins wie DigiMember in WordPress oder auch mit selbst gebauten Member-Bereichen, z. B. in PHP, hat man längst die Möglichkeit eine schönere Login-Maske zu nutzen. Ebenfalls kann man auf diese Weise auch Funktionen wie „Passwort vergessen“ oder überhaupt die Möglichkeit zur Änderung des Passworts für den Endanwender anbieten.
Allerdings hat man ein großes Manko, wenn man sich für die selbst erstellte Variante des Mitgliederbereichs entscheidet oder ein entsprechendes Plugin für WordPress benutzt. Die Inhalte des Mitgliederbereichs, bzw. die Dateien auf dem Server/Webspace, lassen sich auf diese Weise nicht verstecken und vor Zugriff von Nicht-Mitgliedern schützen. Zumindest gilt dies für Dateien wie Bilder (oder html-Dokumente, PDFs) die vom Endnutzer direkt aufgerufen werden müssen.
Werden die Texte aus der Datenbank geladen, wie bei WordPress, sind diese natürlich sicher. Für eingebundene Bilder/Fotos oder zum Download angebotene Dateien gilt dies allerdings nicht! Über die direkte URL wären die Bidler bzw. anderen Dateien auch so im Browser aufrufbar:
Den Ordner auf dem Webspace sollte man nicht zusätzlich per .htaccess verstecken, da der Browser ohne einen Login dann nicht an die Dateien herankommt. Oder Bilder müssten z. B. per PHP oder JavaScript geladen und ausgegeben werden.
Lösung um die Bilder bzw. Dateien trotzdem zu schützen
Es gibt eine einfache Möglichkeit, zumindest beim Apache, die Dateien trotzdem per .htaccess-Datei zu schützen. Hierzu muss man folgendes in der .htaccess-Datei einbauen und an den betroffenen Ordner und die zu schützenden Dateitypen anpassen:
1 2 3 4 5 6 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} /path-to-protect/ [NC] RewriteCond %{HTTP_REFERER} !^https://www.deine-domain.de [NC] RewriteRule .jpg / [R=301] </IfModule> |
Für eine WordPress-Seite, die standardmäßig eingerichtet ist, sollte es wie folgt möglich sein:
1 2 3 4 5 6 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} /wp-content/uploads/ [NC] RewriteCond %{HTTP_REFERER} !^https://www.deine-domain.de [NC] RewriteRule .jpg / [R=301] </IfModule> |
Wenn man mehrere Dateitypen schützen möchte, kann man dies wie folgt erweitern:
1 |
RewriteRule \.(gif|jpg|png|pdf)$ / [R=301] |
Wie funktioniert die .htaccess-Anpassung?
- Durch „RewriteCond %{REQUEST_URI} /path-to-protect/ [NC]“ legt man den Pfad fest, für den die folgenden Anweisungen gelten.
- Mittels „RewriteCond %{HTTP_REFERER} !^https://www.deine-domain.de [NC]“ weist man den Apache an, alle anderen Referrer außer der eigenen Domain, also andere auf die Datei „Verweisende“, mit der dann folgenden RewriteRule abzuhandeln.
- Mit dem letzten Befehl „RewriteRule .jpg / [R=301]“ leitet man schließlich alle Anfragen für JPG-Dateien in dem Ordner auf die Hauptseite um. Hier könnte man natürlich auch eine andere Seite, z. B. eine Werbeseite für den Mitgliederbereich, angeben.
Wenn die Bilder im Mitgliederbereich eingebunden sind funktioniert der Aufruf und die Anzeige der Bilder auch weiterhin, da die Anfrage hierfür von der eigenen Domain (dem noch zugelassenen Referrer) kommt!
Achtung: Hierdurch findet natürlich auch Google diese Dateien nicht mehr! Im Fall des Mitgliederbereichs sollte dies aber wohl auch gewünscht sein. Dadurch tauchen Bilder aus dem Mitgliederbereich nicht in den Ergebnissen von Suchmaschinen auf. Auch das ungewünschte Einbinden der Bilder in andere Webseiten verhindert man so und es gibt keinen „Traffic-Klau“. Allerdings ist dies kein hundertprozentiger Schutz, da es leider auch Referrer-Spoofing gibt, wodurch ein falscher Referrer vorgegaukelt wird!