Gehaxelts Blog

IT-Security & Hacking

Wunderwerk .htaccess

Ich hatte die wundersamen Funktionen von .htaccess zum Absichern eines Ordners genutzt, jedoch ist das nicht alles, was man mit .htaccess anstellen kann. Welche anderen Möglichkeiten man dazu noch hat, werde ich nun kurz beschreiben.

Wie schütze ich bestimmte Bereiche?

.htaccess ermöglicht es einem Webseitenbetreiber einen oder mehrere Bereiche zu schützen. Dazu legt man in dem  zu schützenden Bereich bzw. Ordner eine .htaccess-Datei an, welche folgenden Inhalt aufweist:

AuthUserFile [Kompletter Pfad zur ].htpasswd
AuthName "Bereichsname, welcher angezeigt werden soll"
AuthType Basic
Require valid-user

Diese Zeilen erlauben dann nur noch Benutzern, welche in der .htpasswd stehen und sich erfolgreich authentifizieren konnte, Zugriff auf die entsprechenden Dateien.

Damit dieser Mechanismus ordentlich funktionieren kann,  muss noch die .htpasswd-Datei erzeugt werden, in der nicht mehr als die Benutzer:Passwort-Kombinationen stehen.

Unter Linux-Servern sind die Passwörter verschlüsselt und können über folgenden Befehl generiert werden:

htpasswd -n -p [Nutzer]

Nach der zweimaligen Eingabe eines Passwortes wird die entsprechende Kombination ausgegeben.

Zugriff für bestimmte IP-Adressen sperren/ gewähren

Es ist ebenso möglich den Zugriff nur von bestimmten IP-Adressen zu gewähren oder ihn von diesen auszuschließen.

Möchte man nun nur bestimmten IP-Adressen Zugriff gewähren:

order deny, allow
deny from all
allow from 127.0.0.1

Man sagt dem Server zunächst, in welcher Reihenfolge er die Listen durchgehen soll.

Mit der Zeile

deny from all

werden zunächst jegliche Zugriffe verweigert bis auf die IP-Adresse in der letzten Zeile nach dem “allow from”.

Es ist sogar möglich IP-Bereiche, mehrere IPs oder komplette Hostnamen zu sperren. bzw. deren Zugriff zu gewähren, dazu schreibt man die entsprechende deny bzw. allow from Zeilen mit folgenden Schemata:

Für IP-Bereiche:

deny from 127.127

Für mehrere IPs:

deny from 127.0.0.1
deny from 127.0.0.2

Für Hostnamen:

deny from gehaxelt.in

Zugriff auf bestimmte Dateien sperren/gewähren

Man kann die Zugriffsrechte auch nur auf bestimmte Dateien begrenzen, dazu muss man dann die Direktive “FilesMatch” nutzen.

  <FilesMatch "\.(log|bak)$">
   Order Deny,Allow
   Deny from All
  </FilesMatch> 

Diese Zeilen prüfen, ob die Datei auf welche man zugreifen möchte, mit “.log” oder “.bak” enden, und verweigern dann diesen Zugriff entsprechend, da dort Deny from all aufgeführt wird.

Dieses System ließe sich genauso umkehren, sodass nur von bestimmten Adressen bestimmte Dateien eingesehen werden können.

Eigene Fehlermeldungen anzeigen

.htaccess ermöglicht es ebenfalls dem Administrator in Falle einer Fehlermeldung (404,500,300, etc) den Besucher auf eine eigene Fehlerseite zu lenken. Dazu notiert dieser die Fehlermeldung und die dazugehörige Adresse.

ErrorDocument 404 /notfound.php

Das würde den Besucher, im Falle eines Nicht-Gefunden-Fehlers (404) auf die eigene notfound.php weiterleiten, bzw. diese ihm anzeigen. Es wäre ebenso möglich, den Besucher auf die Hauptseite zu lenken, falls er über einen ungültigen Link auf die Seite kommt.

Weitere Fehlercodes findet man hier.

URLs umschreiben

Eine sehr bekannte und interessante Möglichkeit von .htaccess ist, das man über das Modul mod_rewrite die URLs umschreiben kann.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule /help /helpme.php
</IfModule>

Wenn das zugehörige Modul vorhanden ist, wird die URL “www.seite.de/help” intern zu der URL “www.seite.de/helpme.php” umgeschrieben und letztere verarbeitet.

Das biete viele Möglichkeiten, die Adresszeile des Besuchers nicht öde mit nur einer ID darstellen zu lassen, sondern mit dem Titel des Artikels, wie es u.a. Wordpress durchführt.

Das waren mit die wichtigsten Funktionen, welche ein Webseitenbetreiber nutzen kennen sollte und meiner Meinung stellt .htaccess ein kleines Wunderwerk dar, denn es besitzt viele nützliche Funktionen.

Wer sich noch ein wenig mehr belesen möchte, dem kann ich den folgenden Link empfehlen.

Gruß

gehaxelt

Security

« Mehrfach keine Taste belegt? [V-TuT] Clickjacking »