phpbar.de logo

Mailinglisten-Archive

AW: Level4

AW: Level4

Tim Hildebrandt mysql-de_(at)_lists.bttr.org
Tue, 10 Sep 2002 13:55:25 +0200



Hallo Christian,

Dein Problem liegt darin, dass man grundsätzlich nicht das glauben darf,
was da über die Browserzeile eingegeben wird. Viele Systeme haben dieses
Problem.

Also ich löse das ganze durch eine selbst programmierte
Session-Verwaltung. Eine Session ist eine zufällig generierte Abfolge
von Zahlen und Buchstaben, die innerhalb der Sessiontabelle als
primaryKey auftritt und daher natürlich immer nur einmal vorkommt.
Dadurch, dass die Session dann in absolut jedem Link und in jedem
auszufüllenden Formular mitgeschliffen wird, kann man den jeweiligen
Benutzer immer wiedererkennen und die für den spezifischen Benutzer
geltenden Einstellungen direkt aus der Datenbank laden. Die SID wird
beim ERSTEN Zugriff auf die Seite generiert.

Beispiel:


SID        Benutzername       IP              Browser
fhgu6943   --                 193.45.2.12     IE 5.5



Logsicherweise ist der Benutzername (der im System auch eindeutig sein
sollte, also in der DB als binary und primaryKey gestellt sein sollte)
beim ersten Aufrufen der Seite leer. Der Server kann ja nicht hellsehen.
ABER: Wenn der Benutzer sich mit seinem Benutzernamen und seinem
Passwort eingeloggt hat, kannst Du die Sessiontabelle dahingehend
erweitern, dass Du genau für die aktuelle Session (die sich ja nicht
verändert) den Benutzernamen updatest. Die Tabelle sähe dann so aus:

SID        Benutzername       IP              Browser
fhgu6943   willi.mueller      193.45.2.12     IE 5.5

In einer Benutzertabelle speicherst Du nun, ob Willi Müller Deinen Level
4 besitzt, oder nicht und ober er demnach Datensätze löschen darf oder
nicht.

Folgende Logistik wäre also zu beachten

1. Lesen der SID-Tabelle und feststellen, ob die Session personalisiert
ist oder nicht
2. Wenn Session personalisiert ist, dann die Usertabelle für diesen
Benutzer konsultieren und
die Einstellungen für diesen spezifischen Benutzer laden
3. Daraufhin das Layout so anpassen, dass der jeweilige Benutzer auch
löschen und editieren kann.

Durch die Tatsache, das Du die gesamten personenbezogenden Daten (also
auch Dein level=4) an der SID abklärst und diese Prozesse vollständig
zur Laufzeit auf dem Server stattfinden, kann Dir auch keiner mehr mit
einer gefakten URL in die Suppe spucken. Wenn er die SID verändert (was
dann noch die einzige "Manipulationsmöglichkeit" wäre), dann fliegt er
halt aus dem Loginbereich und kann nix mehr machen, weil keine
Personalisierung...

Ich hoffe, ich konnte Dir helfen.


Gruß Tim




---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive