Überprüfen ob Session vorhanden, wenn nicht Session anlegen

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

  • #16
    Original geschrieben von penizillin
    ergibt keinen sinn: wenn es einen unterschied gibt, wird die session erst gar nicht gestartet, weil die sid nicht stimmt.
    doch, dann wird - sofern die SID die syntaktischen anforderungen erfüllt - eine neue session gestartet.

    aber die enthält dann ja noch keine daten, also auch nichts sensibles, also eigentlich kein großes problem.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #17
      Ok vielleicht etwas genauer:

      ich möchte quasi nen session klau verhindern.
      wenn die startseite aufgerufen wird, soll eine neue session erstellt werden. wenn diese sich jetzt z.B. die ip ändert (welche in $_SESSION beim starten gespeichert wird) soll anstatt der seite eine Fehlermeldung auftauchen mit der Weiterleitung auf die Seite wo die überprüfung fehlgeschlagen ist die alte Session soll zerstört werden und eine neue erstellt werden.

      darf man session_start und session destroy in funktionen auslagern?
      ich hab dieses gemacht um mit einem Funktionsaufruf erstens die ip mit zu speicher und bei der anderen funktion das cookie zu löschen.

      und ich hab keinen plan wie ich das mache ich probier schon seite heute mittag da rum und die seiten die hier liebenswerterweise gepostet wurden kenn ich bereits auswendig weil ich auf diese immer zuerst gehe, weil ich mittlerweile sehr gut weiß, das diese links immer zuerst geposten und darauf verweisen werden.

      Kommentar


      • #18
        1. Welche Session willst du zerstören, wenn ich deine Seite mit einer SessionID betrete, zu der meine IP nicht paßt? Du kennst schließlich die "korrekte" SID nicht. Willst du alle Sessionfiles durchnudeln?
        (Irgendwann entsorgt der GC die schon.)

        2. Woher sollte ich denn eine valide SessionID haben? Die zu erraten ist wie ein 6er im Lotto. (Sag ich heute schon zum 2. Mal.)
        Es genügt session_start() aufzurufen. Wenns eine gültige SID ist, ist es meine Session (denn wie gesagt kann man fremde nicht erraten), wenn nicht wird eben eine neue erzeugt und ich muß mich anmelden weil in der neuen kein loggedin-Flag oder dergleichen existiert.

        Kommentar


        • #19
          also ist das ganze das ich mir da zurechtgedacht hab nutzlos?
          ich brauch weder session_destroy noch irgendwelche überprüfungen?

          ist session_start() ausreichend "sicher"?

          dann brauch ich eigentlich auch nicht die sessionid in der url mitzuübermitteln oder?
          Zuletzt geändert von st@tic; 09.07.2005, 00:32.

          Kommentar


          • #20
            Kannst ja mal versuchen, auf irgendeiner Seite eine Session von einem anderen User zu erraten:
            Selbst wenn gerade 10 Millionen User aktiv sind,
            es gibt 16^32 SIDs, deine Chance ist also etwa 2,9*10^-32.

            Mit 0.000000000000000000000000000000029%-iger Wahrscheinlichkeit wirst du es schaffen.
            (6er im Lotto übrigens 0,000007%. Schon mal gewonnen?)

            Wenn dich das noch nicht überzeugt, dann rechne mal aus wie lange das dauern würde.


            Die SessionID in der URL zu übermitteln ist übrigens immer dann angesagt, wenn der User keine Cookies akzeptiert.

            Kommentar


            • #21
              ja aber wenn doch alles so schön und gut ist, wieso haben z.B. php boards solch aufwendige überprüfungen der session_id?

              ein netzwerksniffer oder die dummheit eines users und schon hat jemand die session.

              gut zugegeben für meine zwecke ist vielleicht so ne überprüfung etwas überflüssig, da nicht unbedingt die sensibelsten daten gespeichert werden, aber wenn ich sowas schon mach dann richtig und der lerneffekt is schließlich auch nicht ohne...

              ich tüftel die ganze zeit wie wild dran rum

              session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-ID basiert, die mit einer Anfrage, z.B. durch GET, POST oder ein Cookie, übermittelt wurde.
              wie nimmt man eine session wieder auf?
              kann es sein das session_start() automatisch ein cookie anlegt und dies auch wieder ausliest?
              und was ist wenn cookies nicht akzeptiert werden wird es dann
              mit session_id($_GET['sid']) (sofern es mittels GET übertragen wurde) wieder aufgenommen?

              Edit: Weitere informationen hinzugefügt

              achja session.autostart ist off
              und ich erlaube jetzt keine cookies mehr, da die session über die sessionid in der URL wieder aufgenommen werden soll.
              Zuletzt geändert von st@tic; 09.07.2005, 05:43.

              Kommentar


              • #22
                ich würde sagen: lerne erstmal mit Session richtig umzugehen, dann kannste dir Gedanken über die Sicherheit bei Verwendung von Session machen. Denn z.Z. ist ja ziemlich zwecklos, da du immer nicht weisst, wie Session funktioniert, obwohl du glaubst, verstanden zu haben

                Kommentar


                • #23
                  Original geschrieben von st@tic
                  kann es sein das session_start() automatisch ein cookie anlegt und dies auch wieder ausliest?
                  langsam werden deine vermutungen ja richtig genial ...!


                  aber jetzt folgst du bitte erst mal den ratschlägen, dich selber etwas zu informieren - damit wir dir nicht jede kleinigkeit darüber hier erzählen müssen.

                  http://tut.php-q.net/sessions.html
                  http://php-faq.de/ch/ch-version4_session.html
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #24
                    Original geschrieben von st@tic
                    ein netzwerksniffer oder die dummheit eines users und schon hat jemand die session.
                    Gegen (clientseitige) Dummheit ist man tatsächlich machtlos, selbst wenn man die eigene besiegt hat.

                    Kommentar


                    • #25
                      OffTopic:
                      hm.. deja-vu...

                      http://www.php-resource.de/forum/sho...0&pagenumber=3

                      Kommentar


                      • #26
                        so hab bis heute morgen um 10 uhr dran rumgetüftelt und bin mal wieder ein stück weitergekommen

                        ich hab die lustige konstante SID gefunden.
                        ich werd jetzt weiter dran rumtüfteln und noch schauen ob ich noch etwas weiter komme.

                        darf ich euch dann später wenigstens den relevanten code mal posten damit ihr wenigstens mal drüber schauen könnt?

                        Kommentar


                        • #27
                          Original geschrieben von st@tic

                          darf ich euch dann später wenigstens den relevanten code mal posten damit ihr wenigstens mal drüber schauen könnt?
                          wenn das nicht mehr als 2 Zeilen und pro Zeile nicht mehr als 80 Zeichen sind, gerne

                          Kommentar


                          • #28


                            ok also ich dürfte jetzt den umgang mit sessions verstanden haben.
                            hat jemand aber vielleicht noch ein paar zusätzliche informationen wie man sessions etwas "sicherer" macht?

                            wenn ihr mich an eurem erfahrungsschatz teilhaben lassen würdet, wäre es für mich bissel leichter

                            Kommentar


                            • #29
                              Hallo st@tic!
                              Also ich habe das so gelöst, wie es schon in einem der ersten Posts dieses Threads geschrieben wurde.
                              Wenn sich jemand einloggt (also Username/Passwort-Kombination passt), dann wird ein Session-Cookie angelegt. Danach setze ich eine Session-Variable (á la $_SESSION["eingeloggt"]). Das geht mit session_register(). Aber das kennst du sicher aus den div. Tutorials. Diese Variable setze ich auf true. Und auf allen folgenden Seiten prüfe ich, ob diese Variable auch immer noch true ist (im Grunde würde reichen zu überprüfen, ob die Variable registriert ist, aber bei mir wird die Variable auch registriert, wenn man sich nicht erfolgreich anmeldet, falsche Username/Passwort-Kombination, nur wird sie dann auf false gesetzt).

                              Das System ist natürlich nicht 100%ig sicher; könnte doch jemand die Session-ID eines angemeldeten Users erraten und sich damit sein Session-Cookie basteln. Dass dies aber nicht passiert, davon kann man ausgehen. (und sollte sich jemand die arbeit machen, dann darf er von mir aus auch rein, in die geschützten Bereiche =) )

                              Kommentar

                              Lädt...
                              X