Website mit Paßwort-Zugang?
Website mit Paßwort-Zugang?
Hallo!
Wollte mal fragen, ob einer 'ne Idee hat, wie ich am besten so 'nen Paßwort-Zugang wie bei www.purebasic.com hinkriegen könnte.
Meine Idee war: auf der Page mach ich ein Formular, das Username und Paßwort an ein PHP-Skript schickt, welches dann eine Paßwort-Datei öffnet und nachschaut, ob das dort irgendwo mit passendem Username hinterlegt ist, und falls ja, wird eben der geschützte Bereich geöffnet.
Ich denke auch eigentlich, daß das sicherlich nicht der falsche Weg / Ansatz ist, die Frage ist nur: was ist, wenn einer die Paßwort-Datei findet? Daher sollte diese ziemlich unauffindbar sein. Aber der Name würde ja wiederum im PHP-Skript stehen, somit wäre das wohl für die meisten Computer-Auskenner eine leichte Aufgabe.
Nun gibt es ja auch die Möglichkeit, so eine Datei in einen .htaccess-Folder zu tun. Damit wäre sie ja eigentlich erstmal vor fremdem Zugriff geschützt. Aber funktioniert das dann mit der PHP-Datei überhaupt noch, sprich, hat die PHP-Datei die notwendigen Rechte, um die Datei aus dem geschützten Verzeichnis auszulesen?
Wollte mal fragen, ob einer 'ne Idee hat, wie ich am besten so 'nen Paßwort-Zugang wie bei www.purebasic.com hinkriegen könnte.
Meine Idee war: auf der Page mach ich ein Formular, das Username und Paßwort an ein PHP-Skript schickt, welches dann eine Paßwort-Datei öffnet und nachschaut, ob das dort irgendwo mit passendem Username hinterlegt ist, und falls ja, wird eben der geschützte Bereich geöffnet.
Ich denke auch eigentlich, daß das sicherlich nicht der falsche Weg / Ansatz ist, die Frage ist nur: was ist, wenn einer die Paßwort-Datei findet? Daher sollte diese ziemlich unauffindbar sein. Aber der Name würde ja wiederum im PHP-Skript stehen, somit wäre das wohl für die meisten Computer-Auskenner eine leichte Aufgabe.
Nun gibt es ja auch die Möglichkeit, so eine Datei in einen .htaccess-Folder zu tun. Damit wäre sie ja eigentlich erstmal vor fremdem Zugriff geschützt. Aber funktioniert das dann mit der PHP-Datei überhaupt noch, sprich, hat die PHP-Datei die notwendigen Rechte, um die Datei aus dem geschützten Verzeichnis auszulesen?
Hallo, du machst es einfach so:
Du Speicherst den Namen und das Passwort ab, allerdings ist das Passwort als MD5 Hash gespeichert "md5($pw)". MD5 ist ja nichtmehr zurückwandelbar. Dadurch nützt es dem Bösen der das PW will nix, er müsste also eine BruteForce Attacke machen. Diese könnte er aber auch durch das Formular machen. Du überprüfst danach einfach die Hashes. Bsp: MD5(<das PW ausm Formular>) == MD5(<aus der PW Datei) sind beide gleich stimmt das PW überein und er kriegt zurgriff.
Hoffe dir etwas geholfen zu haben
Ne Alternative wäre es eine MySQL DB zu benutzen
Du Speicherst den Namen und das Passwort ab, allerdings ist das Passwort als MD5 Hash gespeichert "md5($pw)". MD5 ist ja nichtmehr zurückwandelbar. Dadurch nützt es dem Bösen der das PW will nix, er müsste also eine BruteForce Attacke machen. Diese könnte er aber auch durch das Formular machen. Du überprüfst danach einfach die Hashes. Bsp: MD5(<das PW ausm Formular>) == MD5(<aus der PW Datei) sind beide gleich stimmt das PW überein und er kriegt zurgriff.

Hoffe dir etwas geholfen zu haben

Ne Alternative wäre es eine MySQL DB zu benutzen

Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Du müsstest nicht zwingend MD5 verwenden, da es keine Datei gibt. Und der zugang zur DB ist sowieso mit einem PW geschützt.ZeHa hat geschrieben:Die MySQL-Datenbank wäre ja nicht notwendig. Aber was wäre der Vorteil dabei?
Ich selber arbeite viel Lieber mit MySQL als mit Dateien. Ist für mich besser verwaltbar und einfacher zu benutzen. <- Meine Meinung, einige haben ne andere

Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Hmm gut, wie gesagt, mit PHP hab ich mich erst seit kurzem befaßt. Ich denke mal, ich werds mit 'ner Datei machen (hat aber noch Zeit), da ich ja sicherheitsmäßig keine Nachteile habe, und im Falle der Datenbank noch gar keine Ahnung hab, wie ich überhaupt anfangen soll 
Auf jeden Fall vielen Dank für Deine Hilfe

Auf jeden Fall vielen Dank für Deine Hilfe

Wobei Dein Code oben glaub nich so 100%ig stimmt - müßte doch eigentlich so heißen, oder?
oder?
Code: Alles auswählen
if MD5($eingegebenespwd) == $pwdausdatei
// statt
if MD5($eingegebenespwd) == MD5($pwdausdatei)
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Ne:
Code: Alles auswählen
if(md5($eingegebenespwd) == MD5($pwdausdatei))
{
}
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Aso, ja stimmt. Ich hab nur die Klammern etc. korrigiert. md5() wird klein geschrieben.ZeHa hat geschrieben:Hmmm aber die Paßwörter sind in der Datei doch bereits kodiert gespeichert! Wenn ich da nochmal die MD5()-Funktion anwende, dann stimmt doch hinten und vorne nix mehr
Code: Alles auswählen
if(md5($eingegebenespwd) == $pwdausdatei)
{
}
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46