SID in URL oder nicht ???

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Salut

    Original geschrieben von Trompetenkaefer
    dass die sessionid beim schließen des browsers verfällt ist klar, aber wie lass ich sie parallel dazu auch ind er datenbank verfallen ???
    Das geht nur mit einem clientbasierenden Script wie z.B. JavaScript. Denn wenn die Seite vom Server an den Client geschickt wurde ist diese Sache für PHP gegessen.
    Nur ein Javascript, das beim Schliessen des Browserfensters die zu löschende Session an deine Seite meldet kann dies tun.

    Leider aber kann man JS bekannterweise deaktivieren und somit läuft der ganze Aufwand ins Leere...

    Die "beste" Lösung dürfte aber dem Ansatz von kapitaeniglo folgen:

    Die Session würde ich in eine DB eintragen. Zusammen mit einer Ablaufzeit für die Session und allenfalls die IP. Bei jedem Klick auf einen Link prüft ein Script auf dem Server ob die Session gemäss DB noch gültig ist und passt in diesem Falle die Ablaufzeit an. Oder sie verweigert den Aufruf der Seite und kickt die Session aus der DB.
    Wenn du dann noch Cronjobs hast, dann kannst du dir ein Clean Script für die DB basteln, welches in bestimmten Intervallen alle abgelaufenen Sessions aus der DB löscht.

    Ich denke die Sache mit der Session weiterreichen dürfte die sicherste Sache sein. Denn Cookies, da sie beim Client gespeichert werden, könnten verändert werden. Und was machst du wenn der User die Cookies deaktiviert hat ?

    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


    • #17
      @trompetenkäfer


      offensichtlich hast du von session kein blassen schimmer,

      kopiere doch mal ein amazonlink mit session (cookie off) und sende es einem bekannten, wenn er vorher noch nicht bei amazon war, wird er dein WK Inhalt sehen, denkste warum man trotz Begrüssung per Namen (per Cookie erkannt) beim Bestellen etc. das Passwort nochmal eingeben muss?

      Und wer sagt das amazon die session in der DB speichert? das wird von den meisten nur vermutet.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #18
        @marc75:

        kopiere doch mal ein amazonlink mit session (cookie off) und sende es einem bekannten, wenn er vorher noch nicht bei amazon war, wird er dein WK Inhalt sehen
        Marc, das ist ja gerade meine Frage und Problem ! Du schreibst man sieht den Warenkorb. Aber gerade das soll ja nicht geschehen !


        @jahlives:

        Zusammen mit einer Ablaufzeit für die Session und allenfalls die IP. Bei jedem Klick auf einen Link prüft ein Script auf dem Server ob die Session gemäss DB noch gültig ist und passt in diesem Falle die Ablaufzeit an. Oder sie verweigert den Aufruf der Seite und kickt die Session aus der DB.
        Ja, aber genau über diese Variante denke ich schon seit Tagen nach. Denn wie will man die Ablaufzeit definieren. Wie lang soll sie sein ? Und das Problem ist auch, wenn ich jetzt während meines Bestellvorgangs einen Link mit der SessionID an einen Freund schicke und er diesen anschaut bevor ich fertig bestellt habe, sieht er den Warenkorbinhalt.

        Session zusammen mit IP ist ebenfalls nicht ratsam, da die IP bei manchen Providern ständig wechselt, obwohl es der gleiche Besucher ist (auch wenn das nur AOL ist, aber die Leute will und kann man in eimem Shop nicht ausklammern).

        Ich habs mir halt so gedacht: Besucher kommt auf Seite, wählt etwas aus. Im Zeitpunkt des Auswählens wird seine Session in eine DB geschrieben, dann kann mithilfe der Session und des ausgewählten Artikels der Warenkorb für diesen einen Besucher dargestellt werden. Aber wann genau lösche ich die Session wieder aus der DB ? Wenn derjenige 1 Stunde lang im Katalog rumblättert, muss die Session eine Stunde lang gültig sein. Die Frage ist, ob man das vielleicht mit der Referrer-Adresse verbindet. Wenn er schon auf der Seite ist, dann gilt die Session, ansonsten, wenn er von wo anders kommt nicht. Aber selbst das ist leicht manipulierbar, wenn auch unabsichtlich.

        Kommentar


        • #19
          @trompetenkäfer :

          vor allem kann der referer unterdrückt werden ....
          z.b. die norten firewall macht das gerne

          Kommentar


          • #20
            Hast recht, auch kacke ! Aber was dann ????????????

            Kommentar


            • #21
              Original geschrieben von Trompetenkäfer
              Wenn derjenige 1 Stunde lang im Katalog rumblättert, muss die Session eine Stunde lang gültig sein.
              wenn der jenige sich eine stunde lang durch den warenkorb klickt, bekommst du sicher auch alle paar minuten einen neuen request von ihm, kannst also die session-ablaufzeit immer wieder auf aktuelle zeit plus x hochsetzen. nicht anders macht der standard-sessionmechanismus von PHP das ja auch. wer nur einmal was in den warenkorb legt, dann eine stunde mit tante erna kaffee trinkt, und erst danach wieder eine weitere seite aufruft, der muss halt damit leben, dass er sich neu anmelden muss, weil seine session inzwischen abgelaufen ist.

              dass session-hijacking bei übergabe der ID per GET ein gewisses risiko darstellt, das wirst du immer haben, egal ob du jetzt standard-mechanismen nutzt, oder dir was eigenes implementierst.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #22
                was wäre so schlimm daran, wenn ein bekannter eines kunden (weil wem würde er sosnt einen link schicken), sieht, was dieser im warenkorb hat ????

                bei der bestellung würd ich einfach das login/pw prozedure noch einmal durhcgehen und .... voila ....

                und ich würd die session nur anhgängen wenn kein sitzungscookie zugelassen ist ...
                die meisten lassen diese aber zu, so dass nur recht selten die sessionid mitangehängt wird ...

                gruss
                iglo

                Kommentar


                • #23
                  @wahsaga:

                  auf was würdest du denn die ablaufzeit so setzen ?
                  Apropos GET-Methode... ich überlege gerade, obs nicht irgendwie per Post geht... Ich meine, dann müsste man jeden Link vermutlich per <form> einbinden... aber prinzipiell gehts doch auch, oder ?
                  Ich meine session-hijacking hin oder her, ich rede ja gar nicht unbedingt von absichtlichen hijacking-Methoden, sondern vom Linkversand an sonstwen, der nicht unbedingt sehen soll, was da im Warenkorb liegt.


                  @kapitaeniglo:
                  was wäre so schlimm daran, wenn ein bekannter eines kunden (weil wem würde er sosnt einen link schicken), sieht, was dieser im warenkorb hat ????
                  Naja, vielleicht will man seinem Bekannten nicht unbedingt zeigen, was man da kauft, außerdem ist der Bekannte ja nun nur ein Beispiel gewesen, es kann ja auch der Chef oder sonst wer sein... Bei Amazon gehts ja irgendwie so, dass man trotz SessionID-Übermittlung den Warenkorb des Linkversenders nicht einsehen kann !

                  Kommentar


                  • #24
                    nur weil was im WK liegt hat man es noch lange nicht gekauft und nicht jeder hat die cookies off

                    und wenn du alles per $_POST machst, brauchste dir später nicht wundern das Suchmachinen sich für deine Seiten nicht interressieren.

                    kannst auch eine eigene Ablaufzeit definieren, z.B. nach 30-40 Minuten inaktivität werden die sessionvariablen bei erneuten Aufruf der sessionid einfach geleert, sollte die id nicht aufgerufen werden wird die komplette session eh nach Zeit X von php entfernt (garbage col.....)



                    zu amazon: wenn cookies aktiv wird mir sogar der WK nach X Wochen noch angezeigt, finde das ist auch kein Problem.
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar


                    • #25
                      Marc, ich glaube, wir reden da aneinander vorbei.
                      Mir gehts jetzt nicht darum, ob irgendwas nun schlimm ist oder nicht, mir gehts ums Prinzip, wie etwas realisiert ist. Da die mir natürlich bei Amazon keine Auskunft über Ihre Programmierung geben werden, versuch ich das mal im Forum auszudiskutieren und da hier fähige Leute zu sein scheinen, mach ich das hier.

                      nur weil was im WK liegt hat man es noch lange nicht gekauft
                      Aber man kann es nach den Mathoden, die ich hier bisher gelesen habe sehen !!! Darum gehts ! Bei Amazon kann man es hingegen aber nicht sehen ! Stell Dir mal vor, ich betreibe einen ************spielzeugladen übers Internet - was ich nicht vorhabe, also keine Kommentare dazu bitte - dann wäre es doch nun äußerst ungünstig, wenn ich einen Link verschicke, weil die da tolle Sachen haben, mein Bekannter aber dann genau sieht, dass ich auf SM oder so stehe.

                      und wenn du alles per $_POST machst, brauchste dir später nicht wundern das Suchmachinen sich für deine Seiten nicht interressieren
                      Warenkorb-Unterseiten müssen nicht unedingt in Suchmaschinen stehen. Wichtig ist der Katalog und da kommt man ohne SessionIPs hin, wenn man die nicht unedingt für den Counter braucht.

                      .
                      kannst auch eine eigene Ablaufzeit definieren, z.B. nach 30-40 Minuten inaktivität werden die sessionvariablen bei erneuten Aufruf der sessionid einfach geleert, sollte die id nicht aufgerufen werden wird die komplette session eh nach Zeit X von php entfernt (garbage col.....)
                      Das Thema hatten wir bereits ! Die Ablaufzeit muss auf jeden Fall gesetzt sein und klug ausgewählt werden, dennoch schützt das nicht davor, dass jemand in Deinen Warenkorb schauen kann. Denn wenn ich, während ich etwas in meinem Warenkorb habe, der Browser auch noch offen ist, einen Link zu einem Produkt verschicke, kann diese Person, die den Link bekommen hat solange in meinen Warenkorb schauen, wie ich meinen Browser offen habe.

                      zu amazon: wenn cookies aktiv wird mir sogar der WK nach X Wochen noch angezeigt, finde das ist auch kein Problem.
                      Naja, Cookies sind ja wieder was anderes. Mit Cookies wäre alles lösbar, aber nicht jeder akzeptiert Cookies.

                      Kommentar


                      • #26
                        //rename thread 'SID in URL oder nicht ???' to 'Suche eierlegende Wollmilchsau';

                        onSuccess('Horray');

                        Kommentar


                        • #27
                          Original geschrieben von Trompetenkäfer


                          Aber man kann es nach den Mathoden, die ich hier bisher gelesen habe sehen !!! Darum gehts ! Bei Amazon kann man es hingegen aber nicht sehen ! Stell Dir mal vor, ich betreibe einen ************spielzeugladen übers Internet - was ich nicht vorhabe, also keine Kommentare dazu bitte - dann wäre es doch nun äußerst ungünstig, wenn ich einen Link verschicke, weil die da tolle Sachen haben, mein Bekannter aber dann genau sieht, dass ich auf SM oder so stehe.

                          wieso kann man es bei amazon nicht sehen? Ich behaupte da jetzt mal das Gegenteil.

                          sehe hier: http://www.amazon.de/exec/obidos/tg/...866861-6378164

                          müssten drei Artikel im WK liegen, wie lange dort die session gültig ist weiss ich nicht.


                          zu den ************spielzeug dann solltest du vor dem versenden den WK leeren.



                          Warenkorb-Unterseiten müssen nicht unedingt in Suchmaschinen stehen. Wichtig ist der Katalog und da kommt man ohne SessionIPs hin, wenn man die nicht unedingt für den Counter braucht.
                          wie gesagt, von Sitzungssteuerung haste offensichtlich keine Ahnung, mach mal den Katalog ohne sessionid, wirst sehen der Wk leert sich jedes mal.





                          Das Thema hatten wir bereits ! Die Ablaufzeit muss auf jeden Fall gesetzt sein und klug ausgewählt werden, dennoch schützt das nicht davor, dass jemand in Deinen Warenkorb schauen kann. Denn wenn ich, während ich etwas in meinem Warenkorb habe, der Browser auch noch offen ist, einen Link zu einem Produkt verschicke, kann diese Person, die den Link bekommen hat solange in meinen Warenkorb schauen, wie ich meinen Browser offen habe.
                          siehe Link oben, browser war zwischenzeitlich zu.
                          es gibt bei php.net eine Seite zum thema session, das sollteste mal 5-6 mal durchlesen.
                          mfg
                          marc75

                          <Platz für anderes>

                          Kommentar


                          • #28
                            Schnoop, ich will hier nicht DIE Lösung, die alles umfasst und jedem Hackversuch glorreich standhält, sondern eine gute Lösung für mein Problem ! Und die gibt es, denn Amazon u.a. machen es vor. Ich möchte nur Know-how sammeln, um ähnliches programmieren zu können. Die allumfassende Lösung gibt es da nicht, das ist mir auch klar.

                            Kommentar


                            • #29
                              Marc, das mit dem Warenkorb hab ich bei Amazon schon ausprobiert mit Freunden. Keiner sieht den Warenkorb, den ich sehe, wenn sie die URL mit SessionID anwählen. Auch dann, wenn ich den Browser noch gröffnet habe, die Session also noch aktiv ist.
                              Von Session Management hab ich tatsächlich nicht so die Ahnung, deswegen poste ich ja hier. Ich hab schon die entsprechenden Kapitel zweier PHP-Bücher gelesen und noch keine Antwort auf meine Frage bekommen. Zudem bin ich ja nicht ganz untätig und hab bereits gegoogelt wie ein Wahnsinniger. Sonst würde ich schließlich hier nicht posten.
                              Ich würds gern auch gern ohne Sessions machen, aber wie ???? Ich weiß nicht ganz, wieso Du Dich bemühzigt fühlst, hier etwas zu posten, wenn Du dazu keine Lösung hast. Lies einfach mal alle Beiträge hier zu dem Thema, dann wirst Du sehen, dass ich lange nicht der einzige bin, der nicht weiß, wie man sowas optimal angeht. Denn hier konnte bisher niemand eine ausreichende Lösung posten.

                              Kommentar


                              • #30
                                also habe es eben nochmal probiert,

                                wenn der aufrufende browser auch keine cookies akzeptiert bzw. vorher eine zeit x (ca. 1 Jahr) lang nicht bei amazon war, dann sieht man den Inhalt vom anderen.

                                habe es zwischen ie6.0, mozilla und firefox probiert.


                                Und zum Thema hatte ich mich schon vor ca. 1-2 Jahren ausgiebig belesen. Betreibe selbst ein Online-Shop. Sehe da jetzt aber kein Problem bei mir.
                                mfg
                                marc75

                                <Platz für anderes>

                                Kommentar

                                Lädt...
                                X