Benutzer-Identifizierung
GT
- php
Guten Morgen.
Ich habe ein Problem mit Benutzeridentifizierung und Login / Logout. Für Login / Logout ist mir zwar schon eine umständliche Lösung eingefallen, aber ich wollte mal fragen, ob jemand einen eleganteren Weg weiß. Für Problem 2 ist mir noch nichts gescheites eingefallen.
Problem 1:
Login und Logout (Benutzer soll nach Logout nicht mit der Zurück-Taste wieder auf die vorhergehende Seite springen)
Lösung 1:
in Datenbank eine Variable $Logout nach Login auf 0 setzen (Standard-Wert = 1), und beim Aufruf jeder Seite anfangs abfragen, ob der Benutzer noch eingeloggt ist oder nicht.
Problem 2:
jemand mit PHP-Kenntnissen könnte sich, indem er sich die übergebenen Variablen im Quelltext ansieht, den Anmeldedialog umgehen indem er z.B. www.betreffendeseite.php?user=Benutzername?id=0815 eingibt. So könnte er sich ja z.B. auch unter anderem Benutzernamen anmelden oder auch über Variablen übergebene Werte manipulieren und so weiter (Bsp.: Variable $Konto wird übergeben. Der Benutzer könnte über www.betreffendeseite.php?user=Benutzername?Konto=10000000000 seinen Kontostand manuell erhöhen!)
Was könnte ich dagegen machen?
Vielen Dank vorab für jegliche Hilfe,
GT
Moin,
ich denke die Lösung deiner Fragen sind Sessions.
Problem 1:
Du kannst auch auf eine Variable in der Session prüfen und Bedingungen stellen.
Problem 2:
Erübrigt sich mit Sessions oder du übergibst Variablen mit POST.
Gruß
Frank
Hallo,
Problem 2:
Erübrigt sich mit Sessions oder du übergibst Variablen mit POST.
das ist leider Unsinn (und je nach Anwendung, ein gefährlicher Gedanke).
POST verdeckt ein paar Dinge, aber das kann ich - wenn auch nicht direkt im URL - auch per Script simulieren!!!
Viele Grüße,
Reiner
Könnte ich das evtl. so lösen:
1. zu übergebende Werte in einer tmp-Spalte in der Datenbank speichern
2. beim Login eine Zufallszahl erzeugen und in der DB speichern. Diese Zufallszahl übergeben und auf jeder Seite mit dem Wert der Variablen vergleichen. So kann man nicht einfach den Pfad simulieren um dien Login zu umgehen, da man ja die Zufallszahl nicht kennt.
Ist diese Lösung zu ladeaufwendig oder könnte man das so lösen?
POST verdeckt ein paar Dinge, aber das kann ich - wenn auch nicht direkt im URL - auch per Script simulieren!!!
Viele Grüße,
Reiner
Hi Reiner
Ja, das kann man etwa wie von dir beschrieben lösen. Oder aber man gebraucht Sessions, die genau das machen. Schau mal auf http://www.php.net in der (deutschen) Doku nach, da findest du bestimmt etwas zum Thema. Sessions ermöglichen dir das server-seitige Speichern von Benutzerdaten über mehrer Verbindungen hinweg.
FG
Tom2
Hallo Tom,
Ja, das kann man etwa wie von dir beschrieben lösen. Oder aber man gebraucht Sessions, die genau das machen. Schau mal auf http://www.php.net in der (deutschen) Doku nach, da findest du bestimmt etwas zum Thema. Sessions ermöglichen dir das server-seitige Speichern von Benutzerdaten über mehrer Verbindungen hinweg.
mir brauchst Du das nicht erklären! ;-))
Viele Grüße,
Reiner