Website mit Paßwort-Zugang?

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Website mit Paßwort-Zugang?

Beitrag von ZeHa »

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?
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

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 :wink:
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Hmm okay, darüber hab ich noch gar nicht nachgedacht :) bin aber auch nicht grad der PHP-Oberchecker, hätte gar nich gedacht, daß das so einfach ist ;)

Die MySQL-Datenbank wäre ja nicht notwendig. Aber was wäre der Vorteil dabei?
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

ZeHa hat geschrieben:Die MySQL-Datenbank wäre ja nicht notwendig. Aber was wäre der Vorteil dabei?
Du müsstest nicht zwingend MD5 verwenden, da es keine Datei gibt. Und der zugang zur DB ist sowieso mit einem PW geschützt.

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
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

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 ;)
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Wobei Dein Code oben glaub nich so 100%ig stimmt - müßte doch eigentlich so heißen, oder?

Code: Alles auswählen

if MD5($eingegebenespwd) == $pwdausdatei

// statt

if MD5($eingegebenespwd) == MD5($pwdausdatei)
oder?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

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.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

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 :freak:
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

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 :freak:
Aso, ja stimmt. Ich hab nur die Klammern etc. korrigiert. md5() wird klein geschrieben.

Code: Alles auswählen

if(md5($eingegebenespwd) == $pwdausdatei)
{

}
Stimmt dann. Hab das zweite md5 übersehen.
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.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Anstatt von md5() würde ich übrigens sha1() nehmen. Denn das ist sicherer (Bei MD5 wurden schon sogenannte "Kollisionen" festgestellt, -> Wikipedia), und davon mal abgesehen ist beim sha1(). :wink:
Antworten