5 htaccess-Befehle für mehr Sicherheit auf deiner Website

5 htaccess-Befehle für mehr Sicherheit auf deiner WebsiteWenn es um die .htaccess geht, stehen viele zunächst auf dem Schlauch. Kein Wunder, denn so einfach es das Content Management System WordPress euch macht, muss sich kaum jemand mehr mit der Technik im Hintergrund beschäftigen. Dabei können die richtigen Einträge innerhalb der .htaccess viel bewirken.

Sie beeinflussen den Cache, nutzen Gzip oder Brotli für die Komprimierung von Dateien, leiten um und können sogar als Firewall fungieren, wie ich euch in einem anderen Beitrag bereits aufgezeigt habe.

In diesem Artikel soll es nun um ein paar fortgeschrittene Tipps und Tricks gehen, mit denen ihr eure .htaccess vor allem in Bezug auf die Sicherheit optimieren könnt. Kleine Parameter also, die große Auswirkungen auf eure Website, die Performance oder Sicherheit haben, dabei aber weitgehend ungenutzt oder noch unbekannt sind.

5 htaccess-Befehle für mehr Sicherheit auf deiner Website

Wichtiger Hinweis: Wer seine .htaccess editiert, kann sich unter Umständen gänzlich von seiner Website aussperren oder andere Probleme verursachen.

Um etwaige Fehler schnell und sofort rückgängig machen zu können, solltet ihr unbedingt ein FTP-Backup der .htaccess anlegen, welches bei Bedarf wieder zurückgesichert werden kann.

Ungenutzte Anfragemethoden in htaccess blockieren

Es ist nur eine Kleinigkeit, die allerdings viel bewirken kann. Eine Menge Bots und Crawler senden Anfragen an den Server, die gar nicht erwünscht sind, weil es sich um Methoden handelt, die für normale Nutzer nicht vorgesehen sind. Im Grunde ist die Sache ganz einfach: WordPress braucht in der Regel nur GET und POST, sodass die anderen Methoden blockiert werden können.

GET ist beispielsweise die Methode für den Erhalt einer Website, wohingegen POST etwas an den Server übermittelt, also beispielsweise den Inhalt eines Kommentars. Die meisten anderen Methoden hingegen sind für den normalen Gebrauch einer Website vollkommen überflüssig und können blockiert werden, um Ressourcen zu sparen und Angriffspunkte zu reduzieren.

RewriteCond %{REQUEST_METHOD} 
^(connect|debug|move|put|trace|track) [NC]
RewriteRule .* - [F,L]

Cookies von statischen Ressourcen entfernen

Viele Websitebetreiber nutzen für ihre Ressourcen eine Methode mit sogenannten Cookie-freien Domains. Um alle Cookies der Anfrage zu entfernen und zu verhindern, dass Cookies gesetzt werden, empfiehlt sich folgendes Snippet.

<IfModule mod_headers.c>
	RequestHeader unset Cookie 
	Header unset Set-Cookie
</IfModule>

Um den Befehl verwenden zu können, muss in Apache »mod_headers« aktiviert sein. Weitere Informationen dazu findet ihr hier.

WP-Admin via .htpasswd absichern

Wer mehrere Autoren hat, wird dies vermutlich nicht nutzen können, doch alle anderen sollten zumindest darüber nachdenken. Es ist schon ein Weilchen her, da stellte ich fest, dass das Backend von WordPress im Grunde dauerhaft angegriffen wird. Ständig gab es irgendwelche unsinnigen Zugriffsversuche auf »/wp-admin« und keiner von ihnen war berechtigt. Alles automatisierte Angriffe auf das Backend meines Blogs.

Nun kann ich viele Angreifer aussperren und ich kann Plugins installieren, die verhindern, dass Brute-Force-Attacken auf den Login stattfinden. Eine viel sinnvollere Methode ist es meiner Meinung nach aber eine Art zweites Passwort einzuführen, mit welchem ich den kompletten Zugriff auf das Verzeichnis sperre. Die Angreifer kämen dann schließlich gar nicht mehr bis zum Admin durch, sondern würden schon auf Ebene des Servers blockiert.

5 htaccess-Befehle für mehr Sicherheit auf deiner Website

Die einfachste Art und Weise, dies zu realisieren, ist, sich eine .htpasswd Datei zu erstellen. Dort dann Nutzername und Passwort eingeben, schon spuckt das Online-Tool den Code aus, der in eure Datei mit der Endung ».htpasswd« eingetragen wird. Die kommt in euer Hauptverzeichnis.

Jetzt erstellt ihr eine neue .htaccess für den Ordner »wp-admin« und tragt dort Folgendes ein. Ändert dabei den Pfad zur .htpasswd sodass er mit dem tatsächlichen Pfad auf eurem Server übereinstimmt. Habt ihr alles richtig gemacht und die .htaccess in den Ordner »wp-admin« abgelegt, ist der Zugriff auf selbigen nun nur noch dann möglich, wenn ihr vorher Nutzernamen und Passwort der .htpasswd eingegeben habt.

AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /Individueller/Pfad/zur/Website/.htpasswd
Require valid-user

/Individueller/Pfad/zur/Website/ müsst ihr dabei mit dem Pfad auf eurem Server ersetzen. Diesen findet ihr heraus, indem ihr eine PHP-Datei (z.B. phpinfo.php) im Hauptverzeichnis eurer Website erstellt und darin den Code <?php phpinfo(); ?> eintragt. Ruft ihr diese Datei nun auf, dann werden viele Informationen angezeigt. Unter anderem auch der Pfad einer Website auf dem Server. Hier noch eine Anleitung dazu.

Diese Datei danach sofort wieder vom Server löschen, da sonst Angreifer daraus wertvolle Infos erfahren können!

Ein zusätzlicher Schutz, der Fremde auf einfachste Art und Weise aussperrt. Weiterführende Infos gibts auch bei SelfHTML.

Upload Limit für Dateien festlegen

Wenn auf der eigenen Website Uploads erlaubt werden, kann es notwendig oder gar sinnvoll sein, ein Limit für diese Uploads festzulegen, um Denial-of-Service-Attacken zu vermeiden. Über die .htaccess geht das ganz einfach und mit recht wenig Aufwand über die Direktive LimitRequestBody.

Angegeben wird die Größe dabei in Bytes (nicht in Megabytes), was unbedingt beachtet werden sollte, wenn der Befehl hinzugefügt wird. Hier ein paar gängige Größenordnungen für den Start.

  • 10 Megabytes sind 10485760 Bytes
  • 100 Megabytes sind 104857600 Bytes
  • 1000 Megabytes sind 1048576000 Bytes
LimitRequestBody 10485760

Browser-Features aktivieren und deaktivieren

Das Thema Sicherheit spielt bei der .htaccess eine entscheidende Rolle. So können hier problemlos die sogenannten Security Header gesetzt werden. Mit diesen ist es unter anderem möglich, bestimmte Features in Browsern komplett zu deaktivieren, wenn diese von der Website nicht benötigt werden. Sind sie deaktiviert, kann auch nach einem Angriff niemand Zugriff darauf erlangen.

Bislang hieß der Befehl dafür Feature-Policy, doch nun hat sich das geändert. Aus der Feature-Policy wird nun die Permissions-Policy, weil der Name schlichtweg passender und erklärender ist. Mit dem Header könnt ihr, wie schon gesagt, bestimmte Features im Browser komplett deaktivieren.

Aktuell solltet ihr noch die Feature-Policy nutzen, da der Permissions-Policy Header bislang nicht weitläufig unterstützt wird. Die Integration der neuen Technik kann aber jetzt schon stattfinden, um in Zukunft auf der sicheren Seite zu sein und den Wechseln nicht zu verschlafen.

Im Zuge der Namensänderung hat sich auch die Formatierung geändert. Die Befehle selbst sind gleich geblieben. Mehr dazu hier und hier. Passt das Snippet daher so an, dass euren Ansprüchen entspricht und deaktiviert nur die Features, die ihr nicht benötigt.

Header set Permissions-Policy accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()

Die .htaccess ist immer noch sehr mächtig und wichtig für die Sicherheit

Eine personalisierte .htaccess zu pflegen, die stark an die eigene Website und die eigenen Bedürfnisse angepasst wurde, ist äußerst wichtig. Die kleine Datei ist immer noch sehr mächtig und kann gerade im Bereich der Performance und Security eine ganze Menge bewirken. Natürlich auch viel Negatives, wenn sie falsch konfiguriert wird.

Achtet also immer darauf, dass ihr wirklich versteht, welche Befehle ihr in der .htaccess hinterlegt habt. Kopiert nicht einfach blind den Code dieser oder anderer Seiten, sondern hinterfragt alles nach seinem Nutzen für euer eigenes Projekt. So kreiert ihr schlussendlich eine ganz persönliche kleine Geheimwaffe, die eurer Website gezielt zur Seite stehen kann.

Oft wird die .htaccess heutzutage vergessen oder wenig beachtet, doch sie ist und bleibt eine sehr mächtige Möglichkeit, bereits auf Serverebene Einfluss zu nehmen, ohne von der Serververwaltung viel verstehen zu müssen. Auch beim Thema Suchmaschinenoptimierung oder eventuellen Umleitungen steht sie euch unterstützend zur Seite. Unterschätzt sie also nicht und sorgt dafür, dass alles bestmöglich an euch und eure Website angepasst wurde.

5 Gedanken zu „5 htaccess-Befehle für mehr Sicherheit auf deiner Website“

  1. Hallo Peer,

    wollte demnächst auch noch zusätzlich den Adminbereich per htaccess schützen.

    Können denn Scripte und Plugins dennoch darauf zugreifen? Oder könnte das Probleme geben?

    Eigentlich müssten diese doch vom Server aus darauf zugreifen können, oder?

    VG
    Ronny

    Antworten
  2. Hallo Peer,
    die Entwicklung der Permissions-Policy-Header hatte ich gar nicht auf dem Schirm. Danke für die Erklärung hierfür.

    Antworten
    • David hats geschrieben 🙂 Aber genau deshalb hatte ich den mit aufgenommen. Das sind Dinge, die gehen bei den meisten oft unter, sind aber gar nicht mal so unwichtig.

      Antworten
      • Oha. Entschuldigung. Normalerweise erkenne ich deine Texte hier auch gleich beim ersten Satz. Gestern war ich einfach sehr unkompliziert und abgelenkt. Dann gilt das Dankeschön natürlich auch dir. 🙂

        Antworten

Schreibe einen Kommentar