Richi: Sicherheitsfrage beim Login

Hi,

ich habe ein datenbankgestürtztes Login-System, bei dem ich nach erfolgtem Login je Seitenaufruf prüfe, ob sich die Session_id geändert hat und eine bestimmte Inaktivitätszeit nicht überschritten ist.

Ist es sinnvoll, auch noch zu prüfen, ob sich die IP geändert hat oder ist das sicherheitsmäßig kein weiterer Vorteil?

Grüße Euch, Richard

  1. Hi,

    ich habe ein datenbankgestürtztes Login-System, bei dem ich nach erfolgtem Login je Seitenaufruf prüfe, ob sich die Session_id geändert hat und eine bestimmte Inaktivitätszeit nicht überschritten ist.

    Ist es sinnvoll, auch noch zu prüfen, ob sich die IP geändert hat oder ist das sicherheitsmäßig kein weiterer Vorteil?

    Das waere durchaus ein Vortel, wenn es nicht User gebe, deren IP sich dauernd aendert. Da das die Schuld des Providers ist, und die User nicht viel dagegen tun koennen, sollte man die IP nicht fuer solche Dinge benutzen.

    Den Referer kannst Du pruefen. Aber dir bewusst sein, dass man den durchaus faelschen kann, oder die Uebermittlung abstellen. Letzteres hab ich gemacht und es gibt jetzt Foren, in denen ich nicht posten kann. Wenn es also deren Absicht war, mich nicht an ihrern Communities teilnehmen zu lassen, haben sie das effizient geschafft. Da es sich hierbei aber gewoehnlich um Userentscheidungen handelt, koennte man diese Art der Ueberpruefung nehmen. Denn da kann der User sich auch entscheiden, was er lieber moechte. Deine Seite nicht nutzen oder seinen Browser umkonfigurieren. Musst Du wissen, ob Du deine User vor so eine entweder oder Entscheidung stellen willst.

    --
    Signaturen sind blöd!
    1. Hi Steel,

      Den Referer kannst Du pruefen.

      Und auf was genau soll der geprüft werden? Ob der User innerhalöb des Systems nur interne Links nutzt oder was?

      Worin liegt der Sicherheitsgewinn hierbei?

      Grüße
      Richard

      1. Moin,

        Den Referer kannst Du pruefen.

        Und auf was genau soll der geprüft werden? Ob der User innerhalöb des Systems nur interne Links nutzt oder was?

        Ja. Wenn ich eine Session hijacke, komme ich nicht unbedingt von einer Seite des Systems. Selbst, wenn ich mich gerade einloggen will, koennte man mir unterstellen ein Bot zu sein, wenn ich nicht vom  Login komme.

        Worin liegt der Sicherheitsgewinn hierbei?

        Wenn auf einer Seite, die nach einer Taneingabe folgt und die eine Ueberweisung ausloest, google die letzte Seite war, hast Du ein kleineres Sicherheitsproblem.

        Aber ich habe ja auch schon geschrieben, dass Du deine User etweder zwingst einen korrekten Referer zu benutzen oder Deine Seite zu meiden. Sehr restrektiv, und trotzdem unsicher da faelschbar. Ich weiss nicht, ob es noch so ist, aber frueher konnte ich z.B. in einem bestimmen Forum eines sehr bekannten Spiels nichts posten, nachdem ich meinen Referer ausgestellt hatte. Ich nehm an, man wollte Bots und Deeplinks verhindern.

        Ich finde, dass Refererpruefungen und IP-Pruefungen sich aehneln. Beides bringt im Grunde den gleichen Sicherheitsgewinn (Keinen bei Leuten, die wissen, wie man sowas faked) und beides ist aber sehr restriktiv. Der Unterschied waere lediglich, das der durchschnittliche User ueber die Refererangaben selbst bestimmen kann, ueber die ihm aktuell zugewiesene IP aber eher nicht.

        Ich wuerde beide Moeglichkeiten nicht unbedingt weiterverfolgen und habe das nur als Alternative aufgefuehrt.

        --
        Signaturen sind blöd!
        1. Hi,

          Den Referer kannst Du pruefen.
          Und auf was genau soll der geprüft werden? Ob der User innerhalöb des Systems nur interne Links nutzt oder was?
          Ja. Wenn ich eine Session hijacke, komme ich nicht unbedingt von einer Seite des Systems.

          Und was soll den Bot davon abhalten, eine passende URL als Referrer zu übergeben?

          Worin liegt der Sicherheitsgewinn hierbei?
          Wenn auf einer Seite, die nach einer Taneingabe folgt und die eine Ueberweisung ausloest, google die letzte Seite war, hast Du ein kleineres Sicherheitsproblem.

          Was hat der Referrer mit der letzten besuchten Seite zu tun? Nur weil der Referrer in Ausnahmefällen zufällig deren URL enthalten könnte?

          Ich wuerde beide Moeglichkeiten nicht unbedingt weiterverfolgen

          Das ist sinnvoll.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Hi,

    ich habe ein datenbankgestürtztes Login-System, bei dem ich nach erfolgtem Login je Seitenaufruf prüfe, ob sich die Session_id geändert hat

    Das ist zuwenig. Zu prüfen wäre, ob es zu Seiten, die eine Anmeldung/Berechtigung erfordern, eine SID in der Tabelle der angemeldeten Benutzer gibt.

    Diese Tabelle kannst Du klein halten, indem Du nicht jede SID darin speicherst, sondern nur die SIDs, die zu einer erfolgreichen Anmeldung geführt haben. Das setzt voraus, dass es auch ohne Anmeldung eine konstante SID über die Browsersitzung gibt, genau die wird dann bei einer erfolgreichen Anmeldung serverseitig gespeichert, ansonsten nicht.

    Ist es sinnvoll, auch noch zu prüfen, ob sich die IP geändert hat oder ist das sicherheitsmäßig kein weiterer Vorteil?

    Nicht sinnvoll. Layer 3 ist Netzzeugs und hat auf der Anwendungsebene nichts zu suchen. Überlasse den Layer 3 den Kollegen von der Feuerwehr ;)

    Hotti

  3. Hi!

    ich habe ein datenbankgestürtztes Login-System, bei dem ich nach erfolgtem Login je Seitenaufruf prüfe, ob sich die Session_id geändert hat und eine bestimmte Inaktivitätszeit nicht überschritten ist.

    Inwieweit sollte sich die Session-ID ändern und wie bekommst du das mit? Üblicherwiese ist die Session-ID ein Request-Parameter (meist in Form eines Cookies), den der Client mitsendet. Eine andere ID bedeutet auch ein anderer Benutzer. Unbekannte IDs (beziehungsweise IDs ohne dass dazu Session-Daten auf dem Server zu finden sind) sind kein Nutzer und zählen wie unangemeldet.

    Lo!