franky: Statusunterscheidung ohne Cookies

Hallo.

In meinem Webapp muss ich zwischen
a) nicht eingeloggten Benutzern
b) eingeloggten Benutzern und dem
c) eingeloggten Admin

unterscheiden. Cookies sind leicht zu manipulieren hab ich im Archiv gelesen. Aufgrund dieses Faktes möchte ich möglichst keine Cookied benutzen.
Auf welche Weise kann ich trotzdem unterscheiden? Momentan wird einfach eine Datei navigation.dat includiert, die die Einträge eines nicht eingeloggtem Benutzer beinhaltet (Fall a):

  
 echo "<div class=\"navi\">\n";  
  $all=file_get_contents("config/navigation.dat");  
  echo $all;  
 echo "</div>\n\n";  

Für Fall b) und c) würde ich dann einfach eine andere Datei einbinden.

Danke fürs Lesen...

mfg
franky

  1. hi,

    Cookies sind leicht zu manipulieren hab ich im Archiv gelesen. Aufgrund dieses Faktes möchte ich möglichst keine Cookied benutzen.

    Das ist viel zu sehr verallgemeinert.

    Klar kann ich mir ohne großen Aufwand auf meinem Rechner einen Cookie mit dem Inhalt "Admin" erstellen, und den an deinen Server schicken - aber so naiv wirst du ja kaum sein, nur weil ich "Admin" sende, mich auch für diesen zu halten.

    Auf welche Weise kann ich trotzdem unterscheiden?

    Requests von verschiedenen Clients unterscheidest du über eine eindeutige (Session-)ID.
    Wie du erkennst, welcher Client was darf, ist ein davon vollkommen losgelöstes Thema. Dazu könntest du bspw. einen Login verlangen, an Hand dessen User-ID du bestimmte Rechte vergibst oder auch nicht.

    Momentan wird einfach eine Datei navigation.dat includiert, die die Einträge eines nicht eingeloggtem Benutzer beinhaltet

    K.A., was du dir davon versprichst.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo,

    Wenn du die Möglichkeit hast, dann nutz doch mysql Datenbanken. Ich schreibe bei einem User, nach erfolgreicher Prüfung seiner Zugangsdaten, die session_id in die Datenbank. Somit hast du den Status eingeloggt. Desweiteren über ein USER_LEVEL (z.B ein Int -> 5) weiß ich das der eingeloggte User der Admin ist. Will, oder loggt sich der User aus wird die session_id in der DB einfach auf NULL gesetzt.

    Bisher klappt das ganz prima.

    LG
    f34rless

    --
    ------------------
    http://rem-clan.de
  3. Hallo Franky,

    die grundlegende Vorgehensweise habe ich hier erst die letzten Tage ausführlicher beschrieben:

    https://forum.selfhtml.org/?t=122605&m=788777

    Wenn Du nun keine Client-Erkennung mittels Cookie haben willst, kannst Du auch mit HTTP-Auth arbeiten, um die Session zu führen UND den Benutzer zu authentifizieren.

    Das sind dann zwei Fliegen mit einer Klappe.
    Dann _kann_ die Session erst geführt werden, wenn der Benutzer passende Credentials mitgesandt hat. Anderenfalls würde immer das Authentifizierungsverfahren dazwischenfunken.

    Wir haben das bei einem leider immer noch halbfertigen Projekt als integriertes Loginscript seit Jahren im Einsatz...

    Wenn Du Fragen dazu hast, frag halt.

    LG
    Chris