Komme mit den $PHP_AUTH Tutorials nicht klar

Memfis

Erfahrenes Mitglied
Hallo allerseits.

Ich versuche gerade ein Loginscript zu schreiben indem ich, nach Empfehlung $PHP_AUTH verwenden will. Leider komme ich mit sämtlichen Tutorials die ich bislang gefunden habe nicht zurecht und hoffe auf eure Hilfe.

Was habe ich vor ?

Ziel ist es aus einer Datenbank (MYSQL) einen Benutzernamen und ein Passwort zu kontrollieren und bei Richtigkeit zu überprüfen und entsprechend zu reagieren (Also Zugriff erlauben oder verweigern. Wichtig ist dabei unbedingt, dass das Script sicher ist und nicht (sofort) geknackt werden kann, weil die Daten die dahinter gespeichert sind nicht für jedermann bestimmt sind.

Wie könnt ihr helfen ?

Es wäre wirklich sehr hilfreich, wenn jemannd ein solches Script schreiben könnte und zu wirklich jedem Befehl und jeder Zeile einen Komentar dazu machen könnte warum und wieso das geschrieben werden muss und was die funktion dieses Befehls oder dieser Zeile ist und das ganze dann hier posten.

Ich weis schon, dass das Arbeit ist, aber ich hoffe, dass sich jemannd ranmacht und mir hilft.

Gruß Memfis
 
Wenn du für _jede_ Zeile ein Kommentar brauchst solltest du
dich nochmal mit den Grundlagen von PHP beschäftigen ;)

Ich denke wenn die Funktion einiger Zeilen zusammenfassen
erklärt wird sollte das reichen, dass man anhand der
verwendeten Funktionen etc. die Wirkungsweise erkennt.
 
Hi!

Was ist jetzt eigentlich das Problem?

Kommst du mit der Passwortabfrage nicht klar oder damit, wie du speichern sollst, dass sich die Leute bereits eingeloggt haben?

Für letzteres würde ich die IP-Adresse inkl. timestamp empfehlen. Das Skript baust du in die Navigationsleiste ein, damit es auch immer geladen wird.

Beim Ausführen prüft das Skript ob die IP schon da ist, wenn nicht, ist er nicht eingeloggt.
Wenn er sich dann einloggt schreibt man die IP mit timestamp in die Tabelle und aktualisiert dann jedesmal wenn die Navigationsleiste geladen wird den Timestamp.
Ansonsten lässt man den Timestamp und damit die Anmeldung nach ca 30 min verfallen.

(Hab dieses Login-System selbst auch noch nicht gemacht, werd mich aber die nächsten Tage dran machen, das umzusetzen. Falls jetzt schon jemand einen Fehler im Denkprozess sehen sollte, bin ich für Kritik dankbar.)

Also Memfis, dann schreib mal, wo genau jetzt dein Problem liegt - bei der Passwortabfrage kann ich dir auf jeden Fall jetzt schon helfen, weil die bei mir funktioniert ;)

cu shutdown
 
Ja, das ist wohl eines der Probleme die ich habe, dass ich den Benutzername und das Passwort nicht auszulesen weis. Ganz nebnebei erwähnt wird das Passwort bei meinem User anlegen Script noch im Klartext reingeschrieben was natürlich nicht so toll ist (In dem Formular habe ich aber als Feldtype "password" angegeben) Anschließend muss ich aber die Userdaten immer auf den anderen Seiten "mitschleppen" und das weis ich auch nciht so recht, wie ich das hinbekommen soll. Das mit der IP und dem Timestamp ist eine gute Idee, muss aber der Übersicht halber nicht gleich mit rein, nur wenn es lediglich paar kleine Befehle sind.
 
Hm okay dann fangen wir mal damit an, was ich dir schon bieten kann ;) :

eines der Probleme die ich habe, dass ich den Benutzername und das Passwort nicht auszulesen weis.

Also du legst ein Formular an mit zwei Eingabefeldern: Login und Passwort

Die Eingabe im Login lädst du in einen String: $login = $_POST[login]

Dann führst du erst mal folgende Abrage aus:

$daten = "SELECT * FROM `table` where `username`='$login'";
$auslesen_daten = mysql_query($daten) or die("Error: " . mysql_error());
$daten = mysql_fetch_object($auslesen_daten);

Das ganze lädt dir die Daten desjenigen der sich einloggen will in den String $daten.

jetzt kannst du dir das Passwort folgendermaßen holen:

$password = ($daten->password)

(Natürlich musst du deine Spaltenüberschriften anpassen)

Dann kannst du den String $password mit dem vergleichen was gepostet wurde:

if($password==$_POST[password]){

echo "Du bist drin!";

}

Das ist mal der erste Schritt - somit kannst du dann schon mal zumindest Teile deiner Page vor Unbefugten schützen.



Ganz nebnebei erwähnt wird das Passwort bei meinem User anlegen Script noch im Klartext reingeschrieben was natürlich nicht so toll ist

Ja wie toll des is, weiß ich auch nicht - ein Angreifer müsste auf jeden Fall erst mal deine Passwörter für die Datenbank rauskriegen - in diesem Skript kriegt er zumindest ändernde Rechte nicht - er könnte sie sich höchstens anschauen.

Also wie kriegst du die "verschlüsselt" in die DB:

In deinem Skript über das sich die Leute eintragen, änderst du den String der übergeben werden soll von $string so ab: md5($string)

Das ist nicht wirklich eine Verschlüsselung sondern nur ein Hash-Wert, ist aber genauso "unknackbar"

Jetzt musst du dann aber bei deiner Passwortabfrage dann die Passwörter wie folgt vergleichen:


if($password==md5($_POST[password])){

echo "Du bist drin!";

}




(In dem Formular habe ich aber als Feldtype "password" angegeben)

Hat damit überhaupt nix zu tun, das Passwort wird dadurch unverschlüsselt weitergeleitet - es wird also nur verhindert, dass dir jemand über die Schulter schaut ;)

Anschließend muss ich aber die Userdaten immer auf den anderen Seiten "mitschleppen" und das weis ich auch nciht so recht, wie ich das hinbekommen soll.

Hm, grundsätzliche Möglichkeit - über Sessions - da kenn ich mich aber nicht aus.

Alternative: Wenn du's über meine Version per IP und timestamp machst - gib einfach noch den username mit zur Tabelle.

Dann setzt du vor deine geschützten Bereiche einfach die Abfrage, ob IP und Timestamp passen, und wenn ja, dann soll dieser Username verwendet werden - inwieweit du das dann an deine bestehenden Tabellen anbindest weiß ich nicht.

muss aber der Übersicht halber nicht gleich mit rein, nur wenn es lediglich paar kleine Befehle sind.

Nicht unbedingt der Übersicht halber, aber damit es funktioniert ;-)

Is wirklich nicht sonderlich viel Aufwand - kann dir aber noch nichts bieten - wie gesagt - muss ich auch erst umsetzen

Versuch mal eine einfache Passwort-Abfrage zum Laufen zu bringen und meld dich dann oder bei Problemen wieder - vielleicht kann ich dir dann schon mehr sagen ;)

cu shutdown
 
Danke, werde mich heute Abend genauer mit dem Script befassen. Habe es eben schonmal durchgelesen und glaube, dass ich es zumindest mal nachvollziehen konnte (was bei mir viel heißt *g)
 
Zurück