Verzeichnis sperren – Zugriff über alternative URL

Das BIld zeigt ein Symbolbild. Im HIntergrund ist ein verpixelter FTP-Client zu sehen. Im Vordergrund befindet sich ein rotes Verbots-Symbol.

Aus der Kategorie: Weitere Tipps

449 Wörter
2–3 Minuten

💡 Random Blind Fact

In Augenarzt-Praxen hängen häufig Plakate, auf denen Augenerkrankungen simuliert werden. Die dort dargestellten Erkrankungen entsprechen aber häufig nicht der Realität. Das Restsehvermögen kann trotz entsprechender Krankheit anders ausfallen, als uns die Simulation weismachen will.

Stellt euch vor, ihr wollt den Zugriff auf ein System-Verzeichnis auf eurem Server verhindern. Ihr würdet üblicherweise das Verzeichnis mittels .htaccess und .htpasswd schützen.

Verzeichnis über ein anderes Verzeichnis aufrufbar machen

Stattdessen könnt ihr den direkten Aufruf auf ein Verzeichnis verhindern. Ihr ruft einfach ein anderes Verzeichnis, welches idealerweise auch mittels robots.txt vor Crawlern ausgeschlossen wurde, auf. Nun wird ein Cookie auf eurem Rechner gesetzt, danach werdet ihr zum eigentlichen Verzeichnis weitergeleitet. Dort wird überprüft, ob das Cookie vorhanden ist. Erst dann erhaltet ihr Zugriff auf das Verzeichnis.

Das klingt erstmal furchtbar umständlich. Letztendlich ändert sich lediglich die URL zu eurem geschützten Bereich:

Statt

https://www.url.de/admin

ruft ihr nun

https://www.url.de/hiddenlogin

auf. Nun wird auf hiddenlogin ein Cookie gesetzt und ihr werdet zum Ordner admin weitergeleitet. Wollt ihr aber den Ordner admin direkt aufrufen, gibt euch der Browser die Fehlermeldung zurück, dass die Seite nicht vorhanden ist. Somit sind auch Hacker erstmal ausgesperrt, da sie die alternative URL nicht kennen.

Alternatives Verzeichnis samt Inhalt anlegen

Legt auf eurem Webserver ein neues Verzeichnis an, z. B. hiddenlogin. Erstellt dort eine neue index.php und fügt folgenden Inhalt ein (beachtet die Kommentare):

<?php
 // Tragt Namen und Wert des Cookies ein
 $cookiename = 'iwantaccess';
 $cookiewert = 'accessgranted';

setcookie($cookiename, $cookiewert, 0, '/');

if (!isset($_SERVER['REQUEST_SCHEME']))

{

$_SERVER['REQUEST_SCHEME'] = !empty($_SERVER['HTTPS']) &&

$_SERVER['HTTPS'] == 'on' ? 'https' : 'http';

}

$url = $_SERVER['REQUEST_SCHEME'] . '://';

$url .= $_SERVER['SERVER_NAME'];

// Zielordner "/admin" muss angepasst werden

$url .= rtrim(dirname(dirname($_SERVER['SCRIPT_NAME'])), '/') .

'/admin';

header('Location: ' . $url);
 ?>

Dies bewirkt, dass auf eurem Rechner ein Cookie iwantaccess mit dem Wert accessgranted gesetzt wird. Danach werdet ihr zum eigentlichen Zielverzeichnis weitergeleitet. Bevor wir das aber austesten, müssen wir noch einen weiteren Schritt unternehmen:

Das eigentliche Verzeichnis schützen

Im eigentlich zu schützenden Verzeichnis legt ihr nun eine .htaccess-Datei mit folgenden Inhalt an:

RewriteEngine On
 RewriteCond %{HTTP_COOKIE} !iwantaccess=accessgranted
 RewriteRule .* - [R=404,NC,L]

Nun überprüft der Server, ob das Cookie iwantaccess mit dem Inhalt accessgranted auf eurem Rechner vorhanden ist. Erst dann erhaltet ihr Zugang zum Verzeichnis. Ansonsten gibt der Server den Fehlercode 404 (Seite nicht gefunden) aus.

Da er die alternative URL nicht kennt, kann er auch keinen Zugriff erhalten.

Möchte nun jemand versuchen, auf eurer Admin-Verzeichnis zuzugreifen, wird der Zugriff zurückgewiesen. Da er die alternative URL nicht kennt, kann er auch keinen Zugriff erhalten. Solltet ihr das Gefühl haben, dass sich dennoch jemand Zugriff zu eurem geschützten Bereich verschafft hat, benennt einfach den Ordner, in dem ihr die oben gezeigte index.php angelegt habt, auf dem Server um.

Bitte beachtet folgendes

Die Umsetzung dieser Variante ist eine Komfort-Lösung. Auf der sicheren Seite seid ihr nach wie vor, wenn ihr euer Verzeichnis per .htaccess und .htpasswd schützt!

Schutz per CMS-Plugin

Setzt ihr ein Content Management System ein, gibt es Plugins, welche den Zugriff über die direkte URL unterbinden. Zum Beispiel Hide My WP Ghost für WordPress oder jSecure Light für Joomla.

Olli

🙋 Stellt mir eine Frage

Die FAQ-Datenbank liefert euch keine Antwort auf eure Frage? Dann stellt sie mir hier:



Kategorie
Einverständnis Veröffentlichung