Egal ob ihr einen eigenen Server, einen V-Server oder nur ein Webhosting-Paket gebucht habt, nahezu immer steht euch eine sogenannte .htaccess-Datei zur Verfügung. Diese .htaccess-Datei ist eine Konfigurationsdatei, mit der sich einzelne Einstellungen des Servers entsprechend ansprechen und verändern lassen.
Die .htaccess ist aber auch für den fehlerfreien Betrieb eurer Website notwendig, um beispielsweise Weiterleitungen einzurichten und dafür zu sorgen, dass die gesamte Website ausschließlich via https:// angesprochen wird. Doch neben all den Notwendigkeiten, bietet die .htaccess auch Spielraum für mehr.
In meinem Artikel zu den Security Headern hatte ich euch gezeigt, wie ihr diese mittels .htaccess aktivieren könnt. Heute geht es um weitere Tricks und Befehle, die in einer .htaccess von Vorteil sein können. Anfangen möchte ich hier abermals mit dem Thema Sicherheit.
Firewall via .htaccess einrichten
Da eine .htaccess quasi vor dem eigentlichen Seitenzugriff agiert, lassen sich mit der kleinen Datei potenziell schädliche oder bösartige Zugriffe abwehren. Es ist also durchaus möglich via .htaccess einige Bots auszusperren, IP-Adressen zu blockieren und fragwürdige URL-Parameter zu deaktivieren.
Warum das von Vorteil ist? Zum einen, weil so potenzielle Angriffsstellen verschwinden, zum anderen aber auch, um Ressourcen einzusparen. Denn wenn Angriffe stattfinden oder automatisiert versucht wird, spezielle URL-Parameter auszulesen (gerade bei WordPress geschieht dies am laufenden Band), fressen solche Zugriffe die Leistung eures Servers auf und erzeugen im schlimmsten Fall sogar unnötige Lastspitzen. Mit einer Firewall lässt sich das vermeiden.
Jemand, der sich seit vielen Jahren um derartiges kümmert, ist Jeff Starr. Der pflegt und entwickelt eine Firewall, die via .htaccess eingesetzt werden kann. Die aktuelle Version ist die 7G Firewall, welches sich allerdings noch in der Beta befindet. Sicherer ist es daher, die 6G Firewall einzusetzen.
Ich selbst bin ein großer Fan davon und rate euch, unter anderem aggressive Crawler und Bots gnadenlos auszusperren. SEO-Tools sind da ganz vorne mit dabei, wie beispielsweise der mj12 Bot von Majestic, der zwar potenziell nicht bösartig ist, für meinen Geschmack aber viel zu oft vorbeischaut. Am besten ist, ihr kontrolliert regelmäßig eure Logfiles und setzt alles auf die User-Agent-Liste, was nichts auf eurer Seite zu suchen hat.
Die anderen Regeln blockieren vor allem Angriffsmöglichkeiten oder verschiedene Parameter, dienen also der allgemeinen Sicherheit und sperren aus, was nichts auf eurer Seite zu suchen hat. Mit wenig Aufwand, lässt sich so viel erreichen.
Hotlinking-Schutz nutzen
Ein alter Hut ist das sogenannte Hotlinking. Dennoch wird es oft vergessen oder nichts dagegen unternommen. Einfach gesagt, können Dateien von eurem Server via Hotlink auf anderen Websites angezeigt werden. Bilder beispielsweise, aber auch Videos.
Dabei geht es weniger um den Bilderklau (der immer irgendwie stattfindet und funktioniert), als vielmehr um die Ressourcen. Denn werden eure Dateien massenhaft verlinkt und direkt aufgerufen, könnt ihr euch vorstellen, wie schlecht die Performance eurer eigenen Website wird. Gerade bei Videos ist das oft heikel.
Dieser Generator schafft Abhilfe.
Mit diesem Tool prüft ihr außerdem, ob der Hotlinking-Schutz funktioniert. Einfach eine direkte Bild-URL von eurer Website eingeben. Der Hotlinking-Schutz funktioniert nicht, wenn das Bild angezeigt wird. Wird es nicht angezeigt, ist alles in Ordnung. Denkt bei der Prüfung an den Browser-Cache, den müsst ihr nämlich immer neu laden, sonst zeigt das Tool euer Bild an, auch wenn der Hotlinking-Schutz funktionstüchtig ist.
Beachten solltet ihr außerdem, dass der Hotlinking-Schutz auch für Google gilt, es also eventuelle Probleme bei der Google Bildersuche geben kann. Es sei denn, ihr fügt auch Google als erlaubte Domain hinzu. Allgemein ist die Bildersuche heute aber zu vernachlässigen (meine Meinung), da Google die meisten Besucher dort auf dem eigenen Angebot hält und es quasi keine Vorteile mehr hat, seine Bilder dort zu listen.
Robots-Tag direkt setzten
Wer die Robots-Tags für Suchmaschinen nicht innerhalb von Dokumenten setzen möchte oder nur ganz spezielle Dateien damit versehen will, kann den X-Robots-Tag nutzen und ein FilesMatch-Befehl, um ihn entsprechenden Dateien zuzuweisen.
Ein kleiner und durchaus mächtiger Trick, wenn ihr bestimmte Sachen nicht indexieren lassen möchtet oder ein noarchive bevorzugt. Nichts Großes, aber hin und wieder mal sehr nützlich.
Im Beispiel unten gilt das »noindex, nofollow, noarchive« für alle PDF-Dateien. Ändert es, je nach Wunsch und Anwendungsfall.
<filesMatch ".(pdf)$"> Header set X-Robots-Tag "noindex, nofollow, noarchive" </filesMatch>
Standard Zeichensatz in der .htaccess festlegen
Je nachdem, wie ihr eure Website und euren Server nutzt und welche Anwendungen vorhanden sind, kann es Sinn machen via .htaccess einen Standard Zeichensatz festzulegen. Unter gewissen Umständen kann es nämlich vorkommen, dass dieser nicht gesetzt wird und Umlaute dann nicht mehr korrekt dargestellt werden können.
Der Standard Zeichensatz verhindert dies, indem serverseitig stets UTF-8 gewählt wird, die Umlaute also korrekt ausgegeben werden. So muss der Zeichensatz auch nicht im Code hinterlegt sein, was ebenfalls praktisch sein kann.
AddDefaultCharset utf-8
Gzip Komprimierung aktivieren
Wer Gzip oder Brotli nicht serverseitig aktiviert hat, sollte unbedingt via .htaccess dafür sorgen, dass seine Website entsprechend komprimiert ausgegeben wird. Im Grunde ist das System dahinter denkbar einfach.
Der Server komprimiert eure komplette Website als Gzip. Das reduziert die Größe (oft halbiert sie sich), was wiederum dafür sorgt, dass der Browser das Dokument deutlich schneller herunterladen kann. Browser entpacken das Archiv dann selbständig und zeigen die entsprechende Website an.
Durch die Reduzierung der Größe, ist der Geschwindigkeitszuwachs entsprechend hoch und demnach ist Gzip ein fester Standard geworden. Je nachdem was ihr auf eurer Website verwendet und welche Dateitypen zum Einsatz kommen, wird die Liste unten ergänzt oder reduziert.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>
Brotli ist dabei übrigens die neuere Alternative, die dafür aber auch serverseitig voll unterstützt werden muss. Im Grunde ist auch Brotli ein Kompressionsalgorithmus wie Gzip, reduziert die Dateigröße dabei aber noch etwas mehr als im Falle von Gzip.
Wer mehr darüber erfahren möchte, findet einen entsprechenden Beitrag auf Medium.
Eigene .htaccess Fehlermeldungen
Wer möchte, kann via .htaccess auch eigene Fehlerseiten hinterlegen. Das bedeutet nichts anderes, als dass ihr im Fall von 404-Fehlern eine eigene HTML-Seite erstellen könnt, die dann entsprechend angezeigt wird. Durchaus nützlich.
Sinnvoll ist so etwas immer dann, wenn die Standard-Fehlerseiten eures Hosters keine Weiterleitungen erzeugen oder keine Alternative anbieten. Denn kommt es auf der Website zu einem Fehler, ist es in der Regel wichtig diesen nicht einfach anzuzeigen, sondern den Besuchern stattdessen einen Ersatz zu bieten.
Das könnte eine Suchfunktion auf der Fehlerseite sein, eine Weiterleitung auf die Startseite, ein Hinweis auf ähnliche Artikel oder irgendetwas in dieser Art. So verschwindet der Besucher nicht einfach wieder, sondern bekommt eine sinnige Alternative geboten, die er dann meist auch gerne ergreift.
ErrorDocument 400 www.xyz.de/400.html ErrorDocument 401 www.xyz.de/401.html ErrorDocument 403 www.xyz.de/403.html ErrorDocument 404 www.xyz.de/404.html ErrorDocument 500 www.xyz.de/500.html
Vieles ist möglich, wenig ist sinnvoll
Nun ist es wichtig zu verstehen, dass die .htaccess wie alle Konfigurationsdateien entsprechend abgearbeitet werden muss. Je voller und größer sie also ist, desto mehr Aufwand bedeutet dies in der Regel und desto länger dauert es.
Auch hier gilt also, dass vieles möglich ist, jedoch nur wenig sinnvoll erscheint. Die Firewall bringt beispielsweise eine Menge Regeln mit, empfiehlt sich aber dennoch, um für mehr Sicherheit zu sorgen. Eigene Fehlerseiten sind hingegen nur dann nötig, wenn diese auch speziell angepasst werden. Wenn nicht, reichen auch die Standardseiten von eurem Hoster.
Es gilt eben immer abzuwägen, ob ein Eintrag in eurem Fall wirklich Sinn ergibt. Möglichkeiten gibt es viele, nur müsst ihr diese nicht wahllos ergreifen. Verzichtet lieber und wählt nur die Einträge, die eure Website weiterbringen oder einen Mehrwert bieten.
- So fügst du PDF- und Drucken-Button in deine Website-Artikel ein + Plugin-Tipps - 23. November 2022
- So muss euer Facebook-Titelbild aussehen, damit es geklickt wird! - 10. März 2022
- 3 WordPress Plugins für Diagramme: Visualizer, wpDataTables & WP Charts and Graphs - 15. Februar 2022
OK, verstehe ich das richtig: man geht auf diese 6G-Seite und kopiert aus dem großen Fenster diesen Inhalt für HTACCESS, fügt ihn in die eigene ein und schon hat man eine Art gut laufende Firewall?
Also »Firewall« ist immer ein sehr dehnbarer Begriff, aber ja, im Grunde hast du mit dem Code eine recht clevere WAF. Schädlicher Traffic und entsprechende Anfragen, werden so von Anfang an geblockt und kommen gar nicht mehr durch und das auf einfachster Ebene, ohne erst großartig die Trafficdaten hin und her zusenden.
Vielen Dank endlich funktioniert auch das Thema – Gzip Komprimierung 😉