Mailinglisten-Archive |
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