htaccess: Nur mit meiner IP oder Passwort…
Die meisten Webmaster kennen die Möglichkeit, ein Verzeichnis mit Hilfe einer .htaccess zu schützen, so dass der Zugriff nur per Passwort möglich ist (Auth).
Gerade in Intranets oder bei Tests ist es auch oft gebräuchlich, nur bestimmte IP-Bereiche mit Allow und Deny zu erlauben oder zu verbieten. So kann man schnell bestimmte Störer einfach sperren. Oder bei Tests mit dem neuen Design mal kurz nur den eigenen PC oder das Büro freischalten.
Genauso einfach jedoch weniger bekannt ist die Kombination aus beidem: Man gibt bestimmte Bereiche (z.B. das Entwicklerbüro) anhand der IP-Adresse frei und erlaubt allen anderen den Zugang nur per Passwort. So läßt sich die Entwicklung ohne Klimmzüge wie im Live-Betrieb testen, eingeladene Tester von unbekannten IP-Adressen können die Seite mit einem Passwort vorab sehen und alle anderen bleiben aussen vor.
# HTTP Basic Access Authentication AuthType Basic AuthName "Dieser Bereich ist passwortgeschuetzt. [www.butschek.de]" AuthUserFile /path/to/your/.htpasswd require valid-user # Erlaube einige IP-Bereichen (10.1.75.x sowie 192.168.x.x) # und verbiete alle anderen Anfragen Order deny,allow Deny from all Allow from 10.1.75. Allow from 192.168. # Nur EINE der Bedingungen oben muss erfuellt sein. Satisfy ANY
Der Aufbau der .htaccess Datei ist einfach: Zuerst kommt die übliche Sperre für den Passwortschutz. Danach folgt die IP-Sperre. Zuletzt legt die Satisfy-Regel fest, dass nicht alle (=ALL) sondern nur irgendeine (=ANY) der obenstehenden Regeln zutreffen muss, um den Zugriff zu erlauben.
Vielen Dank! Klappt super.
Perfekt, funktioniert. Danke.
Ich hab so ein ähnliches Problem gerade zu lösen.
Ich habe folgende IP-Liste die ich ausschliessen möchte. Jedoch wenn das Login (Passwort und Benutzername) bekannt ist sollen die sich auch einloggen können. Ich bekomme aber leider einen Server Error
Das entsprechende Verzeichnis ist geschützt.
# Liste gesperrter IP
order allow,deny
deny from 2.32.0.0/12
deny from 217.223.0.0/16
allow from all
Wäre super wenn ich eine Antwort bekäme!
LG
Horst
ich habs ausprobiert bestimmte ip´s zu blocken.
solange allow from all steht, wird nichts geblockt.
wenn aber allow from 192.168. steht, dann funktioniert alles wie es soll.
Danke für die ausführliche Anleitung an den Author.
Schöne Grüße
Hmmm, so herum habe ich es noch nie versucht. Nachdem man mit VPNs, Proxys oder sonstigen Gateways jederzeit eine fremde IP-Adresse bekommen kann, habe ich mich noch nie damit beschäftigt, IP-Adressen zu sperren. Sorry, weiß ich spontan auch nicht.
Pingback: Passwortschutz mit htaccess
Die Reihenfolge ist wichtig. Erlaube zuerst alle und verbiete danach die, die du nicht wünscht.
eine super sache das ganze, erspart eine menge zeit.
danke
Gern.
Hallo Micha,
ich habe einen Webserver aufgesetzt, der nur für mich erreichbar sein soll. In der .htaccess habe ich folgendes stehen:
Order deny,allow
Allow from 192.168.1.
Allow from my.dyndns.org
Deny from all
Ich komme damit dann aber nicht mehr auf die Seite. Erst, wenn die .htaccess wieder leer ist, komme ich wieder drauf. Hast Du eine Idee?
Gruß,
Jörg
Hallo Jörg,
deine Regeln sind in falscher Reihenfolge aufgeführt. Die letzte Regel verbietet ja JEDEN Zugriff, daher kommt nach Abarbeitung der Regeln auch niemand mehr rein.
Versuch es mal so herum:
Deny from all
Allow from 192.168.1.
Allow from my.dyndns.org
Erst alle verbieten, dann selektiv einzelne wieder frei geben, das sollte gehen.
Gruß, Mike
Danke danke danke!!!
Funktioniert einwandfrei!
Gern. :-)
Hi
Ich habe eine Homepage mit einem html player wo ich mp4 videos abspiele. Ich möchte aber nicht das diese von anderen usern geladen werden können.
Es gibt verschiedene möglichkeiten die url zu verstecken, aber wenn einer den pfad weis. bsp. url.de/videos/file.mp4 dann wird ihm das video angezeigt und er kann rechtsklick drauf video speichern. Ich möchte aber das wenn man die url eingibt man das video nicht sieht. Aber die Homepage (der server) soll das video anzeigen. geht das irgendwie ?
hab mal probiert einfach
Deny from all
Allow from /var/www/seitex/
Allow from ip.des.serve.rs
Allow from hostxxx.ip-xxx-xx-xx.net
Allerdings funktioniert das nicht wirklich
Das kann so nicht funktionieren, denn sobald du dem Browser des Besuchers verbietest, das Video zu laden, wird auch der Videoplayer, der im Browser des Besuchers läuft, das Video nicht laden können.
Kurz gesagt: Wann auch immer du das Video vor dem Besucher versteckst/sperrst, wird der Besucher das Video auch nicht ansehen können.
Oder andersherum: Wenn der Besucher das Video sehen kann, kann er es auch herunterladen.
Es gibt viele Tricks, um das Herunterladen etwas schwerer zu machen, aber wenn dein Besucher genug über die Technik weiß, kann er es auch speichern.
Es gibt dann DRM-Techniken, die das ganze wieder einschränken können, das ist aber für eine kleine Seite wohl zu viel Aufwand.
Sieh es mal vom Standpunkt der offenen Internet-Kommunikation:
Wenn du es deinem Besucher zeigen willst, solltest du kein Problem damit haben, wenn er das gesehene auch aufheben kann.
Wenn du es dem Besucher dagegen nicht zeigen willst, stell es nicht ins Internet :-)
Sorry, wenn dir meine Antwort nicht hilft. Aber vergleiche es mal mit Musik: Da versuchen großen Firmen (Apple, Napster, und und und) seit Jahren, das Speichern und Kopieren zu verhindern. Bisher wurden alle geknackt und doch gespeichert.
Das ist leider so.
Stehe gerade etwas auf dem Schlauch ^^
Habe nur eine mysql, php5, apache2, proftpd und phpmyadmin drauf.
Ich möchte, dass ich nur von meiner statischen IP zuhause aus drauf komme (http).
Wohin muss die .htaccess Datei? Etwa in /var/www/html? Habe hier sonst keine anderen Verzeichnisse ;)
Die Datei .htaccess muss in das Verzeichnis, ab dem der Verzeichnisschutz gelten soll.
Beispiel:
Web-Root: /var/www/html
Deine Seite: http://www.example.com/
Angenommen du willst den Admin Bereich schützen:
URL: http://www.example.com/admin/
Dann muss die .htaccess Datei in /var/www/html/admin
Ich hoffe, ich konnte helfen.