loginscript
cr
- php
hallo,
ich habe mir zu testzwecken mal ein loginscript gebastelt welches aus einer datenbank benutzer und passwort mit file() einliest und dann mit den eingaben des benutzers vergleicht...
meine frage dazu:
wenn der user nun einem link in dem geschützten bereich folgt, dann soll php bei jeder seite im geschützten bereich erneut prüfen, ob der user berechtigt ist diesen seite zu öffnen. damit der user nicht jedesmal das passwort und benutzernamen neu angeben muss, soll bei jedem klick eine wert (bestehend aus z.B. ip, unixzeit, zufallszahl) mit übergeben werden und dann überprüft werden, ob dieser wert i.o. ist.
wie sollte ich den wert übergeben? per get-variable?
danke für eure hilfe
Ich grüsse den Cosmos,
hallo,
ich habe mir zu testzwecken mal ein loginscript gebastelt welches aus einer datenbank benutzer und passwort mit file() einliest und dann mit den eingaben des benutzers vergleicht...
Was jetzt? Files oder Datenbank? Ober meinst du Textfiles als Datenbasnk ohen DBMS?
wie sollte ich den wert übergeben? per get-variable?
Es gibt drei Möglichkeiten:
1. GET
2. POST
3. (Session)Cookie
Hat alles seine Vor- und Nachteile. Da du dazu aber massenhaft im Archiv finden wirst, werd ich darauf nicht näher eingehen.
Möge das "Self" mit euch sein
hallo,
danke für die antwort. hilft mir schon sehr weiter.
eine vertiefende frage zu der post-variante:
wie übergebe ich die jedesmal ohne dass der user jedesmal mittels eines formulars den submitbutton dücken muss?
ach und ja es ist vorerst eine txt zum testen...
danke
Ich grüsse den Cosmos,
wie übergebe ich die jedesmal ohne dass der user jedesmal mittels eines formulars den submitbutton dücken muss?
Du kannst z.B. das Formular per JavaScript absenden.
Möge das "Self" mit euch sein
Hello,
wenn der user nun einem link in dem geschützten bereich folgt, dann soll php bei jeder seite im geschützten bereich erneut prüfen, ob der user berechtigt ist diesen seite zu öffnen.
Dfür musst Du Dich also als erstes für die Methode entscheiden:
1. Der Server prüft, ob Zugriff erlaubt ist
2. die Applikation prüft, ob Zugriff erlaubt ist
3. beide prüfen irgendwas, keiner steigt durch, jeder macht mit, und der Effekt bleibt spannend
Oder Du baust Dir ein Zugriffssystem, das bereits auf Serverebene eingreift, aber mehr als "Ja" oder "Nein" in die Applikation hineinträgt. Dann hast Du irgendwann die NDS von NOVELL nachgebaut.
Das ist aber nichts schlechtes :-))
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Weil du gerade anfängst verrate ich dir, wie ich angefangen habe...
in der ersten Variante war es schlicht so, dass nach erfolgreichem Login ein Cookie mit User-id und Passwort gespeichert wurde. Da dieser Cookie bei jedem Klick übertragen wird konnte so auch bei jedem Klick geprüft werden, ob id und pw zusammen passen.
Dieser Cookie hatte unendliche Laufzeiten (1 Jahr oder so), das Script lief äußerst zuverlässig, aber natürlich auch äußerst unsicher, denn immerhin wurde bei _jedem_ Klick das Passwort _unverschlüsselt_ nurchs Netz gejagt.
Schritt zwei war dann eine serverseitige Verschlüsselung, was aber auch nicht wirklich 'was bringt, weil man ja nur die verschlüsselte Version des Passwortes braucht...
Dann habe ich das eingebaut was du vorschlägst, User-ID + Passwort + Uhrzeit + IP + Kontrollsumme in einem String zusammengepackt (also keine einzelnen Cookie-Werte mehr) und verschlüsselt. Das ist schon bedeutend sicherer, weil ein eventuel abgefangenes Cookie nichts mehr bringt, wenn man sich von einer anderen IP aus Zugriff verschaffen will, ebenso geht es nicht mit der selben IP zu einem späteren Zeitpunkt.
Abschließend habe ich diesen verschlüsselten String (übrigens mit variierenden Schlüsseln) auch noch als Session in den Cookie gespeichert... Sessions kann man aber auch via $_GET übergeben.