kölir: SICHERHEIT eines session basierten Login-Systems

Hi,

wollt mal wissen, was ich machen kann, um mein session basiertes Login-System sicher gestalten kann?

Es ist ja nicht gerade gut einfach eine SESSION-Variable anzulegen, die den status enthält,d.h., eingeloggt oder eben nicht eingeloogt, oder?

Es ist ja zumindest theoretisch möglich, dass man auf dies erraten und somit das System knacken könnte oder?

Wenn ich falsch lieg ist ja gut, dann muss ich mir darüber keinen Kopf machen, ABER es gibt bestimmt noch sicherheitsrelevante Dinge, die ich bei meinem System beachten sollte...

danke scho a male

grieß

  1. Hallo,

    eine Session wird auf dem Server gespeichert. Der Verweis auf diese
    geschieht entweder in Form eines Cookies auf dem Client oder durch
    Mitschleifen der SessoinID in der URL. Die Gültigkeit einer Session
    kannst Du noch um die User-IP erweitern (Nachteil hierbei: nach
    Neueinwahl eines Routers mit nicht-statischer IP verfällt die
    Session). Zusätzlich kannst Du noch die UserID hinzupacken.
    Somit ist eine Sicherheit durchaus gewährleistet.

    Mirko

    1. Hi,

      danke erstmal, aber wo soll ich die USER id hinpacken??

      ich überprüfe ja zurzeit nur die eine session variable auf eingeloggt...

      wo soll ich dannn die USER-ID hin??

      sry weiß net wie du des meinst.

      grieß

      1. Ich kann dir mal beschreiben wie ich das gemacht habe.

        Am Anfang erscheint ein Login Script, wo der Benutzer einen Benutzernamen und ein Passwort eingeben muss.

        Dies wird dann per PHP mit einer CSV Datei verglichen, da ich leider keine Datenbankanbindung habe.
        Anschliessend wird immer beim start eines PHP Scriptes der Benutzername und das Passwort mit der CSV Datei abgeglichen. Weitergeleitet werden diese Daten über Session Variablen.

        Ich weiss nicht ob das wirklich optimal gelöst ist, aber es funktioniert ganz gut

        Mfg Chris

      2. Guten Tag,

        danke erstmal, aber wo soll ich die USER id hinpacken??

        Wenn du wirklich die ID gemeint hast:

        Mit der brauchst du gar nichts machen, die wird beim Start einer Session automatisch (meist per Cookie, manchmal wird sie auch als URL-Parameter übergeben) dem Nutzer zugewiesen. Wenn das nicht der Fall wäre, könntest du ja gar nicht auf Session-Variablen zugreifen!

        Falls du IP gemeint hast:

        Die packst du einfach in eine Session-Variable.

        Hoffe ich konnte helfen.

        Der fette Mo

        --
        sh:( fo:| ch:? rl:? br:^ n4:& ie:% mo:) va:) de:> zu:| fl:{ ss:| ls:& js:|
        What do programming and sex have in common? You have to support your mistakes all life long.
  2. Moin!

    Es ist ja nicht gerade gut einfach eine SESSION-Variable anzulegen, die den status enthält,d.h., eingeloggt oder eben nicht eingeloogt, oder?

    Warum nicht?

    Es ist ja zumindest theoretisch möglich, dass man auf dies erraten und somit das System knacken könnte oder?

    Man müßte die Session-ID erraten, die vom legitimen User gerade benutzt wird, um überhaupt eine Chance auf Manipulation zu bekommen. Das ist aber extrem unwahrscheinlich. Auf die Daten der Session hat man mit dem Browser direkt keinen Zugriff, die werden alle vom Server verwaltet und gespeichert.

    Allerdings würde dein Vorgehen implizieren, dass ein einmal eingeloggter User, dem der Admin die Zugangsrechte ändert oder entzieht, nicht automatisch mit der neuen Rechtesituation konfrontiert wird. Die Prüfung, ob der User erlaubt ist, wird ja vermutlich nur einmal beim Login passieren, nicht ständig.

    Sofern das für dich Relevanz hat und du ad hoc einem gelöschten User auch sofort den Zugang entziehen willst, ist eine Variable "eingeloggt" nicht hilfreich. Da wirst du dann Username und ggf. Passwort in den Sessiondaten ablegen und bei jedem Zugriff mit der Usertabelle vergleichen müssen.

    Wenn ich falsch lieg ist ja gut, dann muss ich mir darüber keinen Kopf machen, ABER es gibt bestimmt noch sicherheitsrelevante Dinge, die ich bei meinem System beachten sollte...

    Es gibt ganz viele Dinge, die man beachten sollte. Etliche sind auch sicherheitsrelevant.

    Aber das Thema ist komplex und vielfältig, da kann man ohne Anhaltspunkte kaum umfassend Auskunft zu geben.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."