Ich möchte für meine Homepage einen passwortgeschützten Bereich einrichten, also sollen bestimmte Unterseiten nur mit PW zugänglich sein. Hab schon ein bisschen mit htaccess rumprobiert aber das Ganze nicht wirklich zum laufen gebracht :shock:
Passwortgeschützter Bereich
-
-
Dieser Text wurde editiert, um genau zu sagen wegeditiert.
-
das is im Paket mit drin. Hilfe? - nix!
-
Zitat von xmms
das is im Paket mit drin. Hilfe? - nix!
nein das ist ein standard feat. vom den http servern..
hier ein paar info seiten...
http://de.selfhtml.org/servercgi/server/htaccess.htm
http://www.topsubmit.de/dienste/tools/htaccess-generator/
http://www.trash.net/faq/htaccess.shtml -
thx ich gucks mir mal an
-
Machst du ganz einfach. Tust du in das Verzeichnis, das geschützt werden soll, folgendes Script hochladen und ausführen:
Die Ausgabe dann mal kopieren. Du hast ja wahrscheinlich nen Apache-Server laufen, oder? Der hat dann das Tool htpasswd (resp. htpasswd2) dabei. Damit machst du dann ne .htpasswd-Datei, und zwar folgendermaßen:
User eingeben, Paßwort zweimal eingeben, fertich. Dann lädst du die Datei schonmal in o.g. Verzeichnis hoch. Und hinterher folgende Datei, muß .htaccess heißen (vorher natürlich anpassen):Apache ConfigurationAuthType Basic AuthName "Paßwortgeschützter Bereich" AuthUserFile [vorhin kopierter Pfad]/.htpasswd require user [Username]
Fertich. Und wenn das net geht, dann geht .htaccess net. Dann kann man das aber auch noch anderweitig lösen. -
geht, thx :lol:
-
geht es aber auch ohne htaccess (bin net so begeistert davon)?
Gruß :lol:
-
Naja, man kann das auch anderweitig realisieren. Z.B. Über ne Session oder ein Cookie. Ich hab mal ein meiner Meinung nach _sehr_ sicheres Login mit Cookies geschrieben (man könnte den Inhalt des Cookies natürlich auch über GET mitschicken), dazu brauchst du dann aber auch noch ne Datenbank (z.B. MySQL; ne BerkeleyDB würde mit kleinen Modifikationen auch reichen). Damit das allerdings _richtig_ sicher ist, müßte man die Logindaten über einen SSL-Server übermitteln, weil man ja sonst das Klartextpaßwort abfangen könnte.
Das ist dann schon ein bißchen komplizierter. Funktioniert ungefähr folgendermaßen:Du loggst dich ein. Dann wird erstmal die IP mitsamt einem Timestamp und einem Hash in einer Datenbank abgelegt. Der Hash kann z.B. aus der Zeit, der IP-Adresse und noch ein bißchen festgelegtem Text berechnet werden. Oder man nimmt noch das Paßwort dazu, oder was zufällig Generiertes (unique_user_id() oder sowas) ... Ich würd das ganze dann per SHA1 in nen Hash verpacken. MD5 geht auch, aber SHA1 ist länger und sicherer
Auf jeden Fall setzt du dann den Hash als Cookie. Und dann schaust du bei jedem Klick auf entsprechende Seiten nach, ob das Cookie gesetzt ist. Aber erstmal den Timestamp in der Datenbank für die jeweilige IP aktualisieren, und wenn der letzte Klick länger her ist, als -- sagen wir mal 5 Minuten, dann killst du den Eintrag. Ansonsten einfach den Cookie-Hash mit dem DB-Hash vergleichen. Wenn die übereinstimmen und auch noch von der richtigen IP-Adresse kommen, dann bist du eingeloggt. Und es ist eher unwahrscheinlich, daß das einer ohne weiteres umgeht.So einfach ist das
P.S.: Man kann, wie gesgt, natürlich den Hash auch per Session rumschleifen oder per GET in der Adresse mitgeben. Dann mußt du halt sowas machen wie
[code]<?php
$hash = "";
if(isset($_COOKIE['login']))
{
$hash = "?id={$_COOKIE['login']}";
}?>
Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text, Text <a href="bla bla<?php echo $hash; ?>">Link</a>[code]
Wenn das Cookie nicht gesetzt ist, dann passiert gar nix, wenn doch, dann wird der Hash per GET übergeben.
-
öhh ja :oops: . Da bleib ich erstmal bei .htaccess, trotzdem, danke für deine Mühe, ich werds vielleicht irgendwan probieren :wink:
Gruß