Guido W.: Aktzeptiert Google Cookies?

Hallo,

ich habe eine auf den ersten Blick vielleicht etwas komische Frage: Aktzeptiert Google Cookies?

Ich bin gerade dabei einen E-Shop zu programmieren, der mit Sessions läuft. Funkt auch alles bestens. Die Session-ID wird ja automatisch an die URL angehängt, falls Cookies im Browser deaktiviert wurden. Wenn jetzt Google keine Cookies aktzeptiert, würde doch eine Session-ID bei Google indiziert.

Gruß
Guido W.

  1. Halihallo Guido

    ich habe eine auf den ersten Blick vielleicht etwas komische Frage: Aktzeptiert Google Cookies?

    Akzeptieren tut er sie, aber er ignoriert sie genau so stark, wie er sie akzeptiert.

    Ich bin gerade dabei einen E-Shop zu programmieren, der mit Sessions läuft. Funkt auch alles bestens. Die Session-ID wird ja automatisch an die URL angehängt, falls Cookies im Browser deaktiviert wurden. Wenn jetzt Google keine Cookies aktzeptiert, würde doch eine Session-ID bei Google indiziert.

    Ja.

    Viele Grüsse

    Philipp

    1. Hallihallohallöchen Philipp,

      hast du vielleicht dieses Problem schon mal gehabt? Wie verhält sich den Google nun genau bei Sessions?

      Gruß
      Guido W.

      1. Hi

        hast du vielleicht dieses Problem schon mal gehabt? Wie verhält sich den Google nun genau bei Sessions?

        Es ignoriert sie. Ich habe mit Google noch keine Seite der Art index.{endung}?sessid finden können, alle anderen denkbaren GET-Parameter indiziert Google jedoch, wenn sie in Links vorkommen - Formulare füllt der Googlebot selbstverständlich nicht aus.

        Grüße aus Barsinghausen,
        Fabian

        1. Ich habe mit Google noch keine Seite der Art index.{endung}?sessid finden können

          dann such doch mal nach "PHPSESSID"....

          Das Problem bei Sessions ist auch, dass man das "Alter" einer Session nicht feststellen kann. Oder täusche ich mich da? Habe bisher das Problem mit gebookmarkten (also nicht mehr gültigen Sessions) relativ umständlich mit einer SQL-Tabelle gelöst, welche das Alter der Session enthält...

          Gruß
          Guido W.

          1. Hi

            Ich habe mit Google noch keine Seite der Art index.{endung}?sessid finden können

            dann such doch mal nach "PHPSESSID"....

            Hab ich auch. Du musst schon schauen, _wie die Adressen der Treffer_ lauten, ich habe auf den ersten paar Seiten _keinen_ Get-Parameter "PHPSESSID" finden können. Es wäre auch absolut unsinnig, wenn Google darauf verweisen wollte.

            Das Problem bei Sessions ist auch, dass man das "Alter" einer Session nicht feststellen kann. Oder täusche ich mich da?

            Das kommt ganz darauf an. Serverseitig kannst du natürlich das Alter bestimmen. Der Client weiß natürlich auch, wie alt sein Cookie ist.

            Habe bisher das Problem mit gebookmarkten (also nicht mehr gültigen Sessions) relativ umständlich mit einer SQL-Tabelle gelöst, welche das Alter der Session enthält...

            Warum/wie? Warum verteilst du für abgelaufene Sessions nicht einfach neue?

            Grüße aus Barsinghausen,
            Fabian

            1. Warum/wie? Warum verteilst du für abgelaufene Sessions nicht einfach neue?

              Wie kann ich denn das Alter einer Session feststellen? Gibts dafür einen Php-Befehl?

              Bisher mach ich das so: Bei jedem Seitenaufruf wird geprüft, ob die Session noch gültig ist, d.h. es wird in der SQL-Tabelle, in der ich das "Geburtsdatum" der Session gespeichert habe, nachgeschaut ob die Session noch gültig ist, d.h z.b. nicht älter als 1h ist. Ist sie noch gültig, so wird das Datum erneuert, ist sie ungültig dann wird automaisch auf die Startseite weiter gelinkt und eine neue Session erzeugt.

              Wenn ich nun irgendwie dieses "Geburtsdatum" direkt aus der Session auslesen könnte, dann könnte ich mir das ganz mit der SQL-Abfrage sparen....

              Gruß
              Guido W.

              1. Hi

                Wie kann ich denn das Alter einer Session feststellen? Gibts dafür einen Php-Befehl?

                Nein, aber man kann sich ja Funktionen schreiben.

                Bisher mach ich das so: Bei jedem Seitenaufruf wird geprüft, ob die Session noch gültig ist, d.h. es wird in der SQL-Tabelle, in der ich das "Geburtsdatum" der Session gespeichert habe, nachgeschaut ob die Session noch gültig ist, d.h z.b. nicht älter als 1h ist. Ist sie noch gültig, so wird das Datum erneuert, ist sie ungültig dann wird automaisch auf die Startseite weiter gelinkt und eine neue Session erzeugt.

                Man kann das Alter der Session-Datei im Temp-Verzeichnis mit PHP auslesen.

                Wenn ich nun irgendwie dieses "Geburtsdatum" direkt aus der Session auslesen könnte, dann könnte ich mir das ganz mit der SQL-Abfrage sparen....

                Warum schreibst du das Erstellungsdatum nicht in die Session rein?

                Grüße aus Barsinghausen,
                Fabian

                1. Warum schreibst du das Erstellungsdatum nicht in die Session rein?

                  Ja, warum mach ich das eigentlich nicht? ;-)

                  Danke für den Tipp! So wird das ganze wesentlich einfacher...

                  Gruß
                  Guido W.

                  1. Hi,

                    Warum schreibst du das Erstellungsdatum nicht in die Session rein?

                    Ja, warum mach ich das eigentlich nicht? ;-)

                    Danke für den Tipp! So wird das ganze wesentlich einfacher...

                    Hat aber den Nachteil, dass wenn du die Sessions aus Platzgründen mittels eines Cronjobs loescht, du eine nicht mehr vorhande Session oefnest.

                    Grüße Andres Freund

                    --
                    ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|
                    1. Hat aber den Nachteil, dass wenn du die Sessions aus Platzgründen mittels eines Cronjobs loescht, du eine nicht mehr vorhande Session oefnest.

                      Wie kann ich denn eine nicht mehr vorhandene Session öffnen? Hab immer gedacht "session_start()" erkennt wenn eine Session nicht mehr vorhanden ist und erzeugt eine neue!?

                      Gruß
                      Guido W.

                      1. Hi,

                        Wie kann ich denn eine nicht mehr vorhandene Session öffnen? Hab immer gedacht "session_start()" erkennt wenn eine Session nicht mehr vorhanden ist und erzeugt eine neue!?

                        Das kann ich dir nicht sagen, da ich nicht mit PHP arbeite. Ich meinte nur, dass das ein konzeptionelles Problem sein kann.

                        Grüße Andres Freund

                        --
                        ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|
                    2. Hat aber den Nachteil, dass wenn du die Sessions aus Platzgründen mittels eines Cronjobs loescht, du eine nicht mehr vorhande Session oefnest.

                      Das selbe Problem hast du aber auch wenn die Session auf andere Art und Weise gelöscht wird. Zum Beispiel wenn sich jemand ausloggt und dann den zurück-Link betätigt oder wenn eine Session zu lange inaktiv war und automatisch von PHP gelöscht wird.
                      Also diese Situation das eine ungültige Session geöffnet werden soll muss sowieso jedes Script abfangen können, das damit arbeitet (und sei es nur, das die session-id ignoriert wird wenn es keine gültige session ist)

                      Marc

            2. hi!

              Hab ich auch. Du musst schon schauen, _wie die Adressen der Treffer_ lauten, ich habe auf den ersten paar Seiten _keinen_ Get-Parameter "PHPSESSID" finden können. Es wäre auch absolut unsinnig, wenn Google darauf verweisen wollte.

              nobody is perfect:
              http://www.google.de/search?q=inurl:PHPSESSID&hl=de&lr=&ie=UTF-8&oe=UTF-8&start=10&sa=N

              Grüße
              Andreas

      2. Halihallo Guido

        hast du vielleicht dieses Problem schon mal gehabt?

        Nein, diese Herausforderung habe ich bewusst noch nicht wahrgenommen ;)

        Wie verhält sich den Google nun genau bei Sessions?

        Er (welches Geschlecht hat eigentlich Google?) verhält sich so, als ob er keine Sessions
        kennt. Er verfolgt den Link und die Kindeslinks des Links und so weiter...

        Viele Grüsse

        Philipp

        1. Hi Philipp,

          Er (welches Geschlecht hat eigentlich Google?)

          Männlich. Es heißt _der_ Googlebot ;-)

          Grüße aus Barsinghausen,
          Fabian

  2. Ich bin gerade dabei einen E-Shop zu programmieren, der mit Sessions läuft. Funkt auch alles bestens. Die Session-ID wird ja automatisch an die URL angehängt, falls Cookies im Browser deaktiviert wurden. Wenn jetzt Google keine Cookies aktzeptiert, würde doch eine Session-ID bei Google indiziert.

    Dann ist Dein Laden irgendwie falsch aufgesetzt. Für eine Suchmaschine macht es nur Sinn, Seiten von allgemeinem Interesse zu indizieren. Sessions wiederum sind dafür da, Seiten auf einen bestimmten Nutzer zuzuschneiden. Ergo sollte Dein Laden einer Suchmaschine gar nicht erst eine Session andrehen.

    Nur mal als Beispiel: Für einen Warenkorb werden Sessions genutzt. Es macht aber keinen Sinn, wegen eines nicht genutzten Warenkorbes eine Session anzulegen; einige Leute, die die Nase vom allgemeinen Cookiewahn voll haben, wirst Du damit sogar verärgern. Die Session sollte also erst angelegt werden, wenn ein Produkt in den Warenkorb gelegt wird und nicht einfach mal so automatisch beim ersten Betreten einer Seite.

    Gruß,
      soenk.e

    1. Hallo,

      habe die Sessions bewusst anstatt Variablenübergabe via URL eingesetzt, da ich nur die Artikelnummer als Variable in der URL haben will. Dann wollte ich mittels mod_rewrite meinen Shop suchmaschinenfreundlich machen also die eigentliche URL artikel.php?artnr=1234 serverseitig in artikel/artnr/1234.htm umwandeln.

      Ist es nicht auch ein Sicherheitsrisiko, Variablen (z.B. Suchbegriffe) in der URL zu übergeben?

      Außerdem hat man immer das Problem, wenn man die Session nicht schon von Anfang an erzeugt, dass die Session verloren gehen kann, wenn der User über den Browser Back zurück auf eine Seite geht, die noch keine Session besitzt (Ach wäre die Welt doch wunderbar einfach, wenn jeder Cookies aktzeptieren würde...;-))

      Es macht also durchaus Sinn, die Session schon beim ersten Aufruf zu erzeugen....:-)

      Gruß
      Guido W.

      1. habe die Sessions bewusst anstatt Variablenübergabe via URL eingesetzt, da ich nur die Artikelnummer als Variable in der URL haben will. Dann wollte ich mittels mod_rewrite meinen Shop suchmaschinenfreundlich machen also die eigentliche URL artikel.php?artnr=1234 serverseitig in artikel/artnr/1234.htm umwandeln.

        Vielleicht hast Du Dich auch nur vertippt, aber eine URL mit Fragezeichen ist alles andere als suchmaschinenfreundlich. Was die URL (Artikelanzeige) mit der Session (Warenkorb) zu tun hat, ist mir davon abgesehen nicht so ganz klar.

        Ist es nicht auch ein Sicherheitsrisiko, Variablen (z.B. Suchbegriffe) in der URL zu übergeben?

        Nein, nicht generell. Dein Beispiel "Suchbegriffe" ist ganz im Gegenteil sogar eines, bei dem die Übergabe in der URL sehr viel Sinn macht, denn anders kann man seinen Freunden/Bekannten/Verwandten nicht zeigen, was es bei Dir alles Tolles zum Thema X gibt - ok, man könnte sagen "gehe auf Seite suche.cgi und gibt X ein", aber das wird bei komplexeren Suchaktionen deutlich schwieriger als das Kopieren der URL der Ergebnisseite.

        Problematisch ist hingegen zweifelsohne das Übergeben einer Session-ID, von Benutzernamen oder gar Passworten in der URL.

        Darüber hinaus gibt es immer wieder Probleme, die nicht direkt mit der URL und ihren Parametern zusammenhängen, sondern mit dem sorglosen Umgang mit Variablen in den verarbeitenden Skripten selber.

        Außerdem hat man immer das Problem, wenn man die Session nicht schon von Anfang an erzeugt, dass die Session verloren gehen kann, wenn der User über den Browser Back zurück auf eine Seite geht, die noch keine Session besitzt

        Erstens geht die Session damit nicht verloren, sondern sie wird auf dieser einen Seite lediglich nicht angezeigt. Sie ist aber trotzdem weiterhin aktiv und sollte auch auf dieser Seite weiterhin nutzbar sein; der "In den Warenkorb legen"-Klick befördert beispielsweise in jedem Fall den Session-Keks wieder zum Server, egal ob auf der Seite ein Warenkorb angezeigt wurde oder nicht. Cookies sind server-, nicht seitengebunden.
        Und zweitens helfen in solchen Fällen (so es denn wirklich nötig ist) meistens Vorgaben zum Cache-Verhalten. Oder ein einfacher Reload.

        (Ach wäre die Welt doch wunderbar einfach, wenn jeder Cookies aktzeptieren würde...;-))

        Seiten, die ungefragt und vor allen Dingen ohne erkennbaren Nutzen für den Besucher Cookies setzen, tragen maßgeblich dazu bei, daß manch einer Cookies nicht akzeptiert - dazu zählen auch Läden, die mit Cookies um sich werfen, ohne daß man etwas kaufen will. Lass Dir das mal durch den Kopf gehen :)

        Gruß,
          soenk.e