Tutorial: Bilder, Scripts, Tools sowie andere Dateien und Inhalte mit .htaccess vor fremden Einbinden/Einbetten/Embedding schützen
Mit .htaccess gibt es eine einfache Möglichkeit, Embedding der eigenen Inhalte auf fremden Webseiten zu verhindern
Wenn Du beispielsweise ein Tool programmiert hast, welches du auf deiner Webseite einbindest, so können unter Umständen andere Dein Tool per Iframe in ihre eigene Webseite einbinden! Das können Fremde übrigens, je nach Deinen Einstellungen, auch mit all Deinen Bildern und den meisten anderen Dateien machen. Dies kannst Du aber verhindern, in dem Du beispielsweise per .htaccess und mod_rewrite eine Regel nach folgendem Beispiel definierst (sofern Deine Seite auf einem Apache-Webserver läuft und das Modul mod_rewrite installiert ist):
Wenn du noch keine .htacess Datei hast, erstelle diese mit folgendem Inhalt (ergoogle Dir evtl. noch weitere Informationen über .htaccess und mod_rewrite):
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?meine_webseite_1.ch [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?meine_webseite_2.ch [NC] RewriteCond %{REQUEST_FILENAME} !^.*notallowed\.html [NC] RewriteRule \.(php|html)$ http://www.meine_webseite_1.ch/externedateien/notallowed.html [NC,R,L] </IfModule>
Sichwortartige Erklärung
„meine_webseite_1.ch“ und „meine_webseite_2.ch“ sind die Seiten, welche die Dateien aus dem Ordner einbinden dürfen, in welchem die .htaccess-Datei steht. Versucht nun eine fremde Webseite auf Dateien in diesem Ordner zuzugreifen, wird anstatt die aufgerufene Datei, auf die Datei „http://www.meine_webseite_1.ch/externedateien/notallowed.html“ umgeleitet und diese angezeigt. Die Zeile vor der eigentlichen Umleitung „RewriteCond %{REQUEST_FILENAME} !.notallowed\.html [NC]“ ist notwendig, damit die Datei, welche bei Ablehnung angezeigt werden soll nicht wiederum umgeleitet wird (weil ja der Referer auch hier ein „verbotener“ ist). Bei der RewriteRule im beispiel werden nur .php und .html Dateien umgeleitet, bei der Umleitung von Bildern musst Du hier einfach noch mit jpg, svg, bmp u.s.w ergänzen. Noch etwas zum HTTP_REFERER: Dieser kann gefälscht werden! Also ist diese Methode nicht 100% sicher, genügt aber für die meisten Anwendungen vollkommen. Sicherer ist hier die untengenannte Methode.
Alternative: Einfachere Möglichkeit ohne .htaccess und mod_rewrite
Du kannst auch die Dateiberechtigungen der betreffenden Dateien auf 600 setzen (nur Besitzer darf lesen, schreiben, alle anderen nicht). Der Nachteil dieser Methode ist jedoch, dass du selbst dann auch nicht mehr von extern zugreifen kannst, wenn du diese auf Deinen anderen Seiten einbinden/embedden möchtest (oder die Dateien für bestimmte andere Webseiten freigeben möchtest)! Der andere Nachteil ist, dass Du diese Einstellungen für jede Datei (oder Ordner) einzeln vornehmen musst.
Vorteile der Möglichkeit mit .htaccess und mod_rewrite
Die ganz oben beschriebene Methode per .htaccess ist sehr komfortabel und besitzt die Nachteile der alternativen Möglichkeit mit den Dateiattributen nicht. Du kannst einfach die Regel erweitern um mehren Webseiten die Einbindung zu erlauben (siehe im Codebeispiel die Zeile mit „meine_webseite_2“), und dabei kannst Du auch mit Regulären Ausdrücken arbeiten, welche sich gleich auf viele Dateien/Dateiendungen anwenden lassen.
Deine Meinung?
Hat Dir mein Beitrag weitergeholfen? Kennst Du noch andere hilfreiche Tipps wie man seine Scripts, Inhalte, Bilder, Tools,… vor fremden einbetten schützen kann? Hast Du noch Ergänzungen zu meinem Beitrag? Kritik? Hast Du noch Verbesserungsvorschläge zu meinem Code? Hast Du ein Fehler in meinem Code gefunden? Ich freue mich über jeden Kommentar!