SESSIONS ohne File oder Cookie!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SESSIONS ohne File oder Cookie!

    Guten Tag miteinander,

    ich weiss es gibt schon etliche Beiträge über Sessions und damit verbunde Probleme. Allerdings habe ich eine Frage auf die ich hier noch keine, nach längerer Suche (auch mit Suchfunktion ), Antwort gefunden hab!

    Ich hoffe jemand kann mir helfen!


    Ich bin gerade dabei eine PHP Applikation zu programmieren (welch ein wunder in diesem Forum ). Diese Applikation ist nicht öffentlich gedacht, also steht auf der Startseite ein Loginform und sonst nix. Jetzt da diese Appl. sicher sein MUSS will ich die berühmten Sessions benutzen.
    Ich kann allerdings keine Files oder Cookies benutzten (Vorgabe vom Lehrmeister )

    Nun will ich Sessionhandling über die MySQL Datenbank realisieren, sprich ich schreibe die Session ID, den dazugehörigen User und einen Timestamp in die Tabelle.
    Als ich unseren PHP Progger gefragt habe ob das ganze per "Datenbank-Sessions" sicher ist, meinte er die einzige möglichkeit sicher Sessions zu benutzen sei die Session-File variante.
    Dort werde neben der SessionID auf die BrowserID gespeichert die bei jedem Browser einzigartig ist! Als ich ihn fragte ob man diese Unique BrowserID nicht auch auslesen und in die DB schreiben könne, konnte er mir nicht weiterhelfen.
    GRUNDSÄTZLICH frage ich mich, stimmt das mit der eindeutigen Browser ID überhaupt -> gibt es das??? oder was macht es mit Session-Files so viel sicherer das nicht einfach die URL mit der SessionID weitergegeben werden kann und der trotzdem durch einen unterschied als "falscher surfer/besitzer der ID" erkannt wird?


    Ich hoffe ihr versteht meine Frage, ist ein bisschen lang formuliert sorry


    mfg
    r0acH
    Zuletzt geändert von r0acH; 18.05.2005, 14:36.

  • #2
    kurz gesagt - sowas gibt's nicht.

    dein ansatz ist jedoch korrekt - die session id's werden in der db verwaltet, um den eingeloggten benutzer mit einem angemeldeten zu identifizieren. wenn du angst vor cookies hast oder einfach nur allergisch bist, kannst du die sid immer in der url von seite zu seite mitnehmen.

    Kommentar


    • #3
      Original geschrieben von penizillin
      kurz gesagt - sowas gibt's nicht.
      dacht ichs mir doch das gibt prügel für den lügner





      hmm aber das problem ist doch bei in der url mitgegebener sid dass ich dann die url einfach kopieren kann, an nen jemand anderen schicken -> der gibt die url im browser ein (inkl. sid) und ist eingeloggt.
      Oder warum wird das verhindert? meine DB merkt ja nicht das es ein anderer browser ist der nun offen ist?


      übrigens vielen dank für die schnelle antwort

      Kommentar


      • #4
        cookies kann man auch klauen.

        clientseitige sicherheit zu garantieren ist nicht die aufgabe des entwicklers eines webbasierten systems.

        hier noch:
        http://www.php-resource.de/forum/sho...threadid=54042

        http://www.php-resource.de/tutorials/read/38/1/
        Zuletzt geändert von penizillin; 18.05.2005, 15:03.

        Kommentar


        • #5
          meine DB merkt ja nicht das es ein anderer browser ist der nun offen ist?
          Richtig, für deinen geschilderten Fall wären dann halt doch Cookies die bessere Lösung, wobei auch hier keine 100%ige Sicherheit gewährleistet ist.

          Eine Möglichkeit wäre noch die IP des Clients abzuspeichern und jedesmal zu prüfen, aber auch hier gibts Probleme:
          - AOL-User
          - User hinter Proxy's (hier könnte die Session von jedem hinter dem gleichen Proxy ganz easy geklaut werden).

          EDIT:
          weiteres Problem dabei:
          - wechselt ein User seine IP weil er z.B. seine Verbindung kurz gekappt hat wird er rausgeschmissen.
          Zuletzt geändert von Quetschi; 18.05.2005, 15:08.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar

          Lädt...
          X