Sven Rautenberg: Zugriffsteuerung auf Verzeichnis meines Webspaces ohne Passwort

Beitrag lesen

Moin!

ich möchte ein Verzeichnis so sperren, dass nur ein bestimmter Kreis an Computern über das Internet darauf zugriff hat. Die Computer haben keine feste IP-Adresse. Erste Idee ist natürlich die Steuerung über Benutzer/Passwort mittel .htaccess. Da Benutzer und Passwort aber leicht weitergegeben werden können suche ich nach einer Lösung, die an die jeweiligen Rechner gebunden ist.

Der Apache Webserver bietet nur folgende Möglichkeiten zur Einschränkung des Zugriffs auf eine Ressource (wahlweise müssen alle gleichzeitig erfüllt sein, oder nur genau eine davon):

  • korrekter Username und Passwort
  • korrekte IP bzw. Teil-IP (192.168.0.1, 192.168.2, 192.168.5.10/13,...)
  • korrekte DNS-Namen bzw. Teile davon (also z.B. user123.provider.example oder .provider.example)
  • Auswertung von Environment-Variablen, die sich auf beliebige HTTP-Header beziehen können.

Keiner dieser Mechanismen bringt dich wirklich weiter. Die Eingrenzung über Username/Passwort hast du ausgeschlossen, die Eingrenzung über IP oder Domainname wäre nur bei statischen IPs wirklich brauchbar - ansonsten gewährst du deinen berechtigten Usern eventuell keinen Zugriff, wenn deren IP falsch, d.h. dir bislang unbekannt war, und im Gegenzug können alle unberechtigten User mit dieser IP ebenfalls Zugriff kriegen.

Und die Auswertung von HTTP-Headern hat das Problem, dass diese beliebig manipuliert werden können, andererseits aber im Normalfall nicht manipuliert werden. Du also nur sehr wenig Einfluß auf eine unterscheidbare Gestaltung nehmen kannst. Als Beispiel formuliert: Wenn du basierend auf dem User-Agent alle IE 6.0 reinläßt, kannst du dir den Filter auch gleich sparen, weil der IE weit verbreitet ist - und im Zweifel auch versierte Firefox-User sich als IE ausgeben können, um reinzukommen.

Cookies sind auch keine Lösung, denn die kann der Browserbenutzer nicht selbst setzen (und wenn er es könnte, wäre das genauso zu behandeln, wie Username uns Passwort), sondern die werden gesetzt, indem auf dem Server eine passende Seite aufgerufen wird. Wie aber kontrollierst du den Zugriff auf diese Cookie-Seite? Username und Passwort? Willst du nicht. IP, Domainname etc. geht nicht, siehe oben.

Abgesehen davon sind Cookies viel zu anfällig gegen Löschung! Auch als "permanent" gesetzte Cookies werden sehr häufig mit Beenden des Browsers oder durch entsprechende Einstellung von Sicherheitssoftware wieder gelöscht.

Das Argument "Username und Passwort sind schnell weitergegeben" zieht in meinen Augen übrigens nicht. Denn dasselbe gilt auch für die Webseite bzw. die Informationen, die damit geschützt sind.

- Sven Rautenberg

--
My sssignature, my preciousssss!