Homepageerweiterung mit Autentifizierung und Folgeseiten

yogie

Grünschnabel
Hi Leute,

ich habe bereits eine ältere in PHP/MySql erstellte HP.
Diese möchte ich nun gerne mit einer Autentifizierung und einigen Folgeseiten erweitern.

Die Folgeseiten stellen kein größeres Problem dar, nur die Autentifizierung scheint ein größeres zu werden.

Meine Vorstellung sieht so aus, daß ich über ein LogInfeld (user/passwort) auf der Indexseite in vier unterschiedliche geschütze Bereiche verlinken möchte.
Der 1. Bereich soll exklusiv dem Admin reserviert sein.
Die restlichen 3 Bereiche sollen den angemldeten Usern zur Verfügung stehen.
Über das Registrieungsformular und / oder über den Admin soll dann geregelt werden, welcher USER zu welchem Bereich zutritt hat.
Mit einer Linkbestätigung per Mail, soll zum einen die Richtigkeit der angegebenen eMail feststehen und zum anderen soll eine Accountfreigabe der USERS erreicht werden.

Weiß vielleicht von euch jemand wo man ein sinnvolles Beispiel finden kann, oder existieren vielleicht brauchbare Codeschnipsel die überlassen werden
können

Bin für jeden Rat und Hilfe dankbar !!

-----
yogie
 
Ich gehe mal davon aus, dass es schon eine Tabelle in der Datenbank mit Benutzerdaten gibt, also einem Login-Namen und zugehörigem Passwort.

Damit gestalltet sich das eigentliche Login erstmal nicht schwierig. Dies realisiert du über ein einfaches Formular und beim senden vergleichst Du einfach per Datenbankabfrage, ob es den angegebenen Benutzernamen gibt und ob das eingegebene Passwort dazu gehört. Stimmt dies nicht, kommt man entweder zum Login oder zu einer Fehlerseite, stimmt es, kommst du auf die Folgeseite.

Du möchtest nun aber eine rechteabhängige Weiterleitung. Wenn es nur zwei Arten von Benutzern gibt, also Admin und User, ist das auch schnell erledigt, solange in Datenbank irgwendwo hinterlegt ist, wer wer ist. Nachdem also das Login erfolgreich war, solltest du aus der Datenbank die Art des angemeldeten Benutzers erfragen und dann über eine einfache if-Abfrage den Benutzer zu den gewünschten Seiten weiterleiten, bei mehreren Bernutzerarten verwendest du halt ein switch-Konstrukt.

Vielleicht hilft Dir das als ersten Denkansatz. Wenn nicht, melde Dich einfach noch mal.

Grüße
Heiko
 
Hallo Heiko,

vielen Dank für deinen Denkanstoss. - Dieser hat mir sehr geholfen !!

Habe zudem noch einig Seite in Google gefunden, so daß ich nun schon fast ein
funktionierendes Script habe.

Jetzt beschäftigt mich gerade ein Denk- bzw Sicherheitsproblem !

Wo sind dabei im allgemeinen die Sicherheitslücken ?
Wie können diese ggf. gestopft werden ?
Sollten man zur Sicherheit die Session in "Cookies" speichern ?
Wie wird ggf. ein sollches "Cookie" erstellt, gefüllt bzw wieder gelesen ?
Kann man so ohne weiteres eine geschützte Seite (Admin) evt. so von ausen in eine andere Datei
includen so das dieser wohl möglich für Dritte nutzbar wird ?

Gruß
Ernst
 
Also bei den Cookies:

PHP:
setcookie("cookiename[varname]","wert",time()+((3600*24)*100)); //-zum erstellen und befüllen.
//Mit dieser Angabe beimCookienamen wird ein Array gebildet so kann in ein einziges Cookie mehrere Daten gepackt werden. 

//Die 2. Stelle ist der Wert der in das Cookie geschrieben werden soll 
//und die 3. Stelle ist der Ablaufszeitpunkt in Sekunden (in diesem Beispiel sinds 100 Tage)

PHP:
$_COOKIE['cookiename']['varname'] -zum verwenden der Cookie-Daten
 
Hi Yogie,

die Sicherheit hängt da natürlich von verschiedenen Faktoren ab, zum Beispiel, wie werden die Benutzerdaten und Passwörter hinterlegt. Sicherer als eine Textdatei ist da schon mal die Verwendung einer Datenbank. Dann stellt sich die Frage, wird das Passwort verschlüsselt gespeichert (z.B. md5).

Sollte man die Sessions in Cookies speichern?
Das kommt darauf an was man alles in dem Cookie speichert. Wenn es nur die SessionID ist, und man danach auf jeder geschützen Seite wieder prüft, ob der entsprechende Benutzer anhand der ID erfolgreich angemeldet ist, gibt es nichts auszuspionieren. Wenn man aber auf die Idee kommt, mehr Daten in den Sesssion-Variablen und damit auch in dem erzeugten Cookie zu speichern, kann sich der "Hacker" vielleicht seine eigenen Gedanken zur verwendeten Authentifizierung machen.

Prinzipiell ist es so, dass Sessionvariablen, die nicht über die URL weitergereicht werden, in einem nicht eigens von dir angelegten Cookie abgelegt werden, sprich, du musst nicht extra einen Cookie per Hand erstellen, um Sessions per POST weiterzureichen.

Eine geschützte Seite auf anderen Dritten zur Verfügung zu stellen hängt halt von verschiedenen Faktoren ab, wenn Du mit Dritten Seitenbetreiber auf einer anderen Domain/Server meinst.
Wenn Du nämlich die Authentifizierung per Datenbank wählst, sind diese meist so eingestellt, das Domains außerhalb von localhost keine Zugriff drauf haben und jemand Dein Skript nicht mehr verwenden könnte.

Grüße
Heiko
 
Zurück