exciter: Sicherer Login ohne Session oder Cookies???

Hallo, nur mal so ne Frage: denkt ihr, es gibt eine Möglichkeit, einen relativ sicheren Login auch ohne die Verwendung von Sessions oder Cookies zu erstellen? Dachte da an solche Sachen wie eine selbst geschriebene "Quasi" Sessionverwaltung oder die Kopplung von time() und IP, usw. Geht das oder sollte man sich doch eher an Sessions/Cookies halten??? Das Problem ist halt, dass ich nicht will, dass ein User auf meiner Seite Cookies akzeptieren muss und das Mitschleifen der Session-ID in der URL ist mir zu unsicher...

Danke für Tipps und Vorschläge.

exciter.

  1. Hi,

    ich verwende selbst eine eigende Sessionverwaltung die arbeitet so:

    Die Session ID besteht aus mehreren Teilen,

    UserID-UserGruppe-timestampDesLogIns-Checksumme

    ich übergebe das ganze per GET, zusätzlich kannst du das ganze noch verschlüsseln.

    Ich würde dir aber raten die Sessions von PHP zu verwenden. Du musst dazu nicht zwangsläufig cookies benutzen, dann aber GET.

    1. Hallo
      Mich interessiert besonders, wie ich so eine eigene Sessionverwaltung angehen könnte, also das grundsätzliche Vorgehen...
      exciter.

      1. Hi

        schick mir mal eine eMail nach bastian@upb.de dann schicke ich dir heute noch ein Beispiel von mir. Das schaust du dir an und versuchst es für deine Zwecke zu verändern. Hast du dabei noch Probleme helfe ich dir gerne auch noch mal.

        Gruß
        Bastian

        1. Hi Bastian,

          schick mir mal eine eMail nach bastian@upb.de dann schicke ich dir heute noch ein Beispiel von mir. Das schaust du dir an und versuchst es für deine Zwecke zu verändern. Hast du dabei noch Probleme helfe ich dir gerne auch noch mal.

          Warum postest du es nicht hier (ich meine die relevante Stellen)?
          Dann haben alle was davon...

          Fabian

          1. Hallo,

            Warum postest du es nicht hier (ich meine die relevante Stellen)?
            Dann haben alle was davon...

            Genau Fabian, das finde ich auch :-)

            Deshalb von mir an dieser Stelle in paar unbedeutende Anmerkungen:

            1. Schritt
            ----------
            Beschäftige Dich mit "Auth 401" also dem Auslösen eines Headers im PHP-Script, der duech Überprüfung der Daten in $_SERVER["PHP_AUTH_USER"] und $_SERVER["PHP_AUTH_PW"] durch eine Funktion abgeschickt wird.

            2. Schritt
            ----------
            Überleg Dir, wie Du diese Wertepaare von Password und Loginname in einer Datenbank oder einem LewLevel-File verwalten kannst. Sorg dafür, dass es keine Dubletten geben kann.

            3. Schritt
            ----------
            Überleg Dir, wann man Daten aus dem Hintergrund für das aktuelle Script wieder vorholen muss und wann man sie wirder im Hintergrund abspeichern muss.

            4. Schritt
            ----------
            Beschäftige Dich mit der Funktion register_shutdown_function()
            Beschäftige Dich mit der Funktion serialize()
            Beschäftige Dich mit der Funktion unserialize()

            Dann müsste es klappen.

            Viel Rrfolg.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
  2. Hi

    denkt ihr, es gibt eine Möglichkeit, einen relativ sicheren Login auch ohne die Verwendung von Sessions oder Cookies zu erstellen?

    Ja. HTTP-Auth.

    Dachte da an solche Sachen wie eine selbst geschriebene "Quasi" Sessionverwaltung oder die Kopplung von time() und IP, usw. Geht das oder sollte man sich doch eher an Sessions/Cookies halten???

    Das ist egal, die Qualität des Logins hängt von der Komplexität der Credentials ab.

    Das Problem ist halt, dass ich nicht will, dass ein User auf meiner Seite Cookies akzeptieren muss und das Mitschleifen der Session-ID in der URL ist mir zu unsicher...

    Dann nimm HTTP-Auth.

    Fabian

    1. Hi
      Dann nimm HTTP-Auth.
      Fabian

      Meinst du damit Verifizierung über htacces???

      exciter

      1. Hi

        Meinst du damit Verifizierung über htacces???

        Jain. HTTP-Auth _muss_ nicht über .htaccess passieren. Siehe HTTP-401-Header.

        Fabian

  3. Moin!

    Hallo, nur mal so ne Frage: denkt ihr, es gibt eine Möglichkeit, einen relativ sicheren Login auch ohne die Verwendung von Sessions oder Cookies zu erstellen? Dachte da an solche Sachen wie eine selbst geschriebene "Quasi" Sessionverwaltung oder die Kopplung von time() und IP, usw. Geht das oder sollte man sich doch eher an Sessions/Cookies halten??? Das Problem ist halt, dass ich nicht will, dass ein User auf meiner Seite Cookies akzeptieren muss und das Mitschleifen der Session-ID in der URL ist mir zu unsicher...

    Du hast folgendes Problem zu lösen: Damit du den Benutzer bei jeder Anforderung von Seiten oder auch Grafiken wiedererkennst, muß er bei jedem Request eine eindeutige Kennung mitschicken.

    HTTP bietet dafür eigentlich nur drei verschiedene Methoden an:
    1. Cookies
    2. HTTP-Authentifizierung
    3. Daten in GET (sichtbar per URL) oder POST (unsichtbar, aber auch unpraktisch für normale Links).

    Eine dieser drei grundlegenden Methoden mußt du dir aussuchen. Keine ist gegenüber einer anderen sicherer oder unsicherer. Immer kann dir passieren, dass die gesendeten Daten, die ja unverschlüsselt übermittelt werden, abgefangen und mißbraucht werden. Bei besonders schlechten Mechanismen kann es dir obendrein noch passieren, dass man auch raten kann, welche Zugangsdaten für einen erfolgreichen Angriff notwendig sind.

    Insbesondere wegen diesem letzten Punkt halte ich es für ratsam, langerprobte und bekannte Mechanismen einzusetzen, anstatt sich irgendwas selbst auszudenken. Wahlweise also HTTP-Auth oder PHP-Sessions. Damit hast du dann alle drei Fälle abgedeckt, die man mit HTTP überhaupt machen kann. PHP-Sessions verwenden bevorzugt Cookies und steigen nur dann auf URL-Parameter um, wenn keine Cookies möglich sind. Du hast dabei sogar die Möglichkeit, den Einsatz der URL-Parameter ganz fein zu steuern, wenn du nicht Trans-SID benutzt (das fügt die Parameter automatisch an alle lokalen URLs an).

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
  4. Was spricht denn gegen die Verwendung von Sessions? HTTP ist nun mal ein verbindungsloses Protokoll. Sessions haben den Vorteil, dass ich auf dem Server fast beliebig viele Daten von einer Seite zur anderen übertragen kann, ohne dass der Client sie ändern kann.

    Gegen HTTP-AUTH spricht meiner Meinung, dass Login/Passwort jedesmal im Klartext übers Netz gehen.

    Wenn sicherheitskritische Daten übertragen werden, sollte man evtl gleich SSL benutzen.

    Greetings,
    Charlie07