Sessions sollen nicht als Cookies gespeichert werden

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

  • Sessions sollen nicht als Cookies gespeichert werden

    Hallo,

    wie kann ich verhindern, dass Sessions trotz manueller
    Anhängung wie unten als Cookies gespeichert werden?

    PHP-Code:
    <?

    session_name("s");
    session_start();
    $s=session_id();

    echo "<a href=link.php?s=".$s.">Link</a>";

    ?>
    Es soll verhindert werden, dass z.B. ein Member dem
    anderen einen Link schickt wie z.B. logout.php und dann
    der unbedarfte User draufklickt und auf einmal ausgeloggt ist.

    Sprich es soll wenn dann nur mit "seiner" eigenen angehängten
    Session-ID gehen.

  • #2
    So die Lösung dürfte wohl die sein:

    PHP-Code:
    ini_set("session.use_cookies","0");
    ini_set("url_rewriter.tags",""); 
    Das schreibt man VOR die Sessions-Befehle und fertig. Oder?

    Kommentar


    • #3
      Es soll verhindert werden, dass z.B. ein Member dem
      anderen einen Link schickt wie z.B. logout.php und dann
      der unbedarfte User draufklickt und auf einmal ausgeloggt ist.

      Sprich es soll wenn dann nur mit "seiner" eigenen angehängten
      Session-ID gehen.
      meines wissens ist das fast unmöglich(lase mich gern beleren).

      du könntest aber die ip in die session speichern und bei jedem aufruf prüfen ob es noch die gleiche ist, wenn nicht ---> logout. aber damit sperrst du die AOL user parktisch aus, denn bei denen ändert sie die ip ständig. von daher das mit ip veregessen.

      die daten vom browser(broser typ, version, win version) kannst du auch nicht nehmen, denn es gibt viele user die das geiche haben.

      auch mit cookies geht es nicht.


      PHP-Code:
          ini_set("session.use_cookies","0");
          
      ini_set("url_rewriter.tags",""); 
      Das schreibt man VOR die Sessions-Befehle und fertig. Oder?
      damit verhinderst du nur das die session id an die url gehängt wird. auserdem werden cookies nicht benutzt

      mfg roland
      Zuletzt geändert von Rolandbar; 05.03.2006, 09:41.
      Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

      Kommentar


      • #4
        Re: Sessions sollen nicht als Cookies gespeichert werden

        Original geschrieben von Truncate
        Es soll verhindert werden, dass z.B. ein Member dem
        anderen einen Link schickt wie z.B. logout.php und dann
        der unbedarfte User draufklickt und auf einmal ausgeloggt ist.
        Wenn du sonst keine Sorgen hast ...


        Dieses "Problem" wäre m.E. absolut zu vernachlässigen.
        Relevanter wäre es, wenn man ihn dazu bringen könnte, Daten verändernde Aktionen auszuführen. Aber da bist du mit SID-Übergabe per URL definitiv näher dran, als mit Cookies.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Also so weit ich weiß:
          einfach in der config:
          PHP-Code:
          session.use_trans_sid 
          wenn nun keine <form> in der page ist wird die sid an die url angehängt ansonsten wird die sid als POST übertragen in einem hidden field.
          PHP-Code:
          echo "<input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n"
          ich hab das zwar nocht nicht viel getestet aber es schien zu gehen

          Nachzulesen: http://at.php.net/manual/en/ref.session.php#59026

          Kommentar


          • #6
            Nun bei meinen 2 Zeilen bringt doch dann ein Link ohne SID (auf z.B. logout.php) nichts mehr, darum ging es mir ja eigentlich.

            Also ich find das schon relevant, stellt euch vor irgendein Trottel
            verschickt an alle Mitglieder solche Links und alle loggen sich
            unfreiwillig aus oder sonstwas passiert...

            Kommentar


            • #7
              Nun bei meinen 2 Zeilen bringt doch dann ein Link ohne SID (auf z.B. logout.php) nichts mehr, darum ging es mir ja eigentlich.
              stimmt da hast du recht.

              ich seichere die SID lieber in cookies, denn wenn sich user die links weitergeben und vorher nicht die SID aus dem link genommen haben, sind sie auf einmal bei dem eingelogt, der ihnen den link gegeben hat.


              Es soll verhindert werden, dass z.B. ein Member dem
              anderen einen Link schickt wie z.B. logout.php und dann
              der unbedarfte User draufklickt und auf einmal ausgeloggt ist.
              das ist doch nich so schlim, er kann sich ja den neu einlogen.

              mfg Roland
              Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

              Kommentar


              • #8
                Naja mit dem ausloggen ist ja noch harmlos, aber sicher nicht schön wenn man AutoLogin hatte und dann auf einmal erstmal wieder sein Passwort suchen/anfordern muss etc. :-)

                Gut hab auch wieder auf SID-Cookies umgestellt, muss halt jetzt nur noch "dumme" Links verhindern...

                Kommentar


                • #9
                  Original geschrieben von Truncate
                  Naja mit dem ausloggen ist ja noch harmlos, aber sicher nicht schön wenn man AutoLogin hatte und dann auf einmal erstmal wieder sein Passwort suchen/anfordern muss etc. :-)
                  Viel unschöner ist es doch, wenn ein böser User ein Link in das Forum einfügt und auf ihn klickt gewird oder noch besser, wenn er einfach ein Bild einbindet. Der Browser übermittelt an den fremden Server den Referer und der böse User muss dann nur in die Logfiles schauen und wird so mit einigen Accs Blödsinn machen können...

                  Natürlich könnte man proxy- oder dereferer-scripts einsetzen, aber das kostet wieder Serverleistung...

                  Wenn ich was ändern würde, dann dass die sid NUR über cookies übertragen wird. Wenn jemand die logout-Seite aufruft, kannst du ja dort außerdem noch eine Sicherheitsabfrage mit einbauen... "Möchtest du dich wirklich ausloggen?"... das als Formular mit der Methode POST und das "Problem" ist Vergangenheit...

                  Kommentar


                  • #10
                    Original geschrieben von DoubleJ2k
                    Wenn ich was ändern würde, dann dass die sid NUR über cookies übertragen wird.
                    Also ini_set("session.use_cookies","1"); und fertig? Das Anhängen wird ja dann automatisch weggelassen oder?

                    Kommentar


                    • #11
                      Original geschrieben von DoubleJ2k
                      [...] wenn er einfach ein Bild einbindet. Der Browser übermittelt an den fremden Server den Referer und der böse User muss dann nur in die Logfiles schauen
                      Kann bei trans_sid nicht passieren, da die SID nur an relative Links angehängt wird - und in deren Natur liegt es nun mal, dass sie nur auf die selbe Domain aufgelöst werden.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Also ini_set("session.use_cookies","1"); und fertig? Das Anhängen wird ja dann automatisch weggelassen oder?
                        nein, es könnte immer noch nemand der was von php versteht die SID an die url hängen, und php würde sie verwenden.

                        folgendes müsste gehen:
                        PHP-Code:
                        ini_set("session.use_cookies","1"); // cookies benutzen
                        ini_set("session.use_only_cookies","1"); // nur cookies erlauben, sid inr url wird nicht beachtet
                        ini_set("session.use_trans_sid","0"); // sichergehen das sid nicht automatisch angehängt wird 
                        Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                        Kommentar

                        Lädt...
                        X