Karl Heinz: Wie arbeiten Cookies

Hallo,

nehmen wir an eine Webseite verwendet Google Analytics. Nehmen wir des weiteren an in der Datenschutzerklärung gibt es einen Link mit dessen Hilfe das ga-disable Cookie auf true gesetzt werden kann. Das Setzen dieses Cookies hindert Google Analytics an der Ausführung. In der Praxis funktioniert das prima. Was mich interessiert ist was hier technisch im Hintergrund abläuft bzw. wie das gesetzte Cookie dazu führt, dass Google Analytics am Tracking gehindert wird.

Ich stelle mir das so vor:

  • Besucher kommt zum ersten Mal auf die Webseite.
  • Beim ersten Besuch setzt der Besucher das ga-disable Cookie über den Link in der Datenschutzerklärung.
  • Eine Woche später kommt der Besucher ein zweites Mal auf die Webseite. Beim zweiten Aufruf (http-request) wird das ga-disable Cookie an den Server geschickt.

Bis hierhin alles klar. Aber dann ein großes Fragezeichen.

Dem Server liegt das Cookie vor. Wie wird nun anhand dieses Cookies die Ausführung des Google Analytics Codes verhindert bzw. wird der Analytics Code ausgeführt aber an der Übermittlung gehindert?

Viele Grüße

--
"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."

akzeptierte Antworten

  1. Hallo Karl Heinz,

    Dem Server liegt das Cookie vor. Wie wird nun anhand dieses Cookies die Ausführung des Google Analytics Codes verhindert bzw. wird der Analytics Code ausgeführt aber an der Übermittlung gehindert?

    Gar nicht. Ein Cookie ist lediglich eine Textdatei (siehe https://wiki.selfhtml.org/wiki/Cookie). Google findet diesen Cookie und hält sich an das Versprechen, nicht zu tracken.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Hallo Matthias,

      Dem Server liegt das Cookie vor. Wie wird nun anhand dieses Cookies die Ausführung des Google Analytics Codes verhindert bzw. wird der Analytics Code ausgeführt aber an der Übermittlung gehindert?

      Gar nicht. Ein Cookie ist lediglich eine Textdatei (siehe https://wiki.selfhtml.org/wiki/Cookie).

      Naja. Das war früher so, heutzutage verwenden Browser dafür eher eine Datenbank, etwa SQLite.

      Google findet diesen Cookie und hält sich an das Versprechen, nicht zu tracken.

      Was als Hintergrund-Info vielleicht fehlt: solange der Cookie nicht das Flag httpOnly hat, ist er über document.cookies via JS einsehbar. Diesen Weg wird GA nutzen.

      LG,
      CK

      1. Hallo Christian

        Was als Hintergrund-Info vielleicht fehlt: solange der Cookie nicht das Flag httpOnly hat, ist er über document.cookies via JS einsehbar.

        Genau genommen ist er dann über document.cookie einsehbar. ;-)

        Es handelt sich hierbei nicht um eine HTMLCollection wie document.forms oder auch document.links, sondern die Eigenschaft ist vom Typ String und wird als ein Getter/Setter-Paar implementiert.

        Setzen von Cookies geht hier nur einzeln durch Zuweisung:

        // implicit calls to setter
        
        document.cookie = 'once=true';
        document.cookie = 'twice=false';
        

        Beim Lesen bekommt man alle Cookies in einem String:

        // implicit call to getter
        
        console.log(document.cookie); // "once=true; twice=false"
        

        Viele Grüße,

        Orlok

        --
        „Dance like it hurts.
        Make love like you need money.
        Work when people are watching.“ — Dogbert
        1. Hallo Orlok,

          Was als Hintergrund-Info vielleicht fehlt: solange der Cookie nicht das Flag httpOnly hat, ist er über document.cookies via JS einsehbar.

          Genau genommen ist er dann über document.cookie einsehbar. ;-)

          Hehe, stimmt. Vertippt. Danke.

          LG,
          CK

    2. hi @Matthias Apsel

      Dem Server liegt das Cookie vor. Wie wird nun anhand dieses Cookies die Ausführung des Google Analytics Codes verhindert bzw. wird der Analytics Code ausgeführt aber an der Übermittlung gehindert?

      Gar nicht. Ein Cookie ist lediglich eine Textdatei (siehe https://wiki.selfhtml.org/wiki/Cookie). Google findet diesen Cookie und hält sich an das Versprechen, nicht zu tracken.

      Das ist kompletter Unsinn. Wie bitte soll Google denn einen Cookie, also eine Textdatei auf einem entfernten Rechner finden!?

      Besser Du bleibst bei Deinen Elchen die bei Vollmond Brötchen backen!

      MfG

      1. Hallo pl,

        alter Schwede, du solltest dich mit deiner Arroganz vielleicht zurückhalten.

        Das ist kompletter Unsinn. Wie bitte soll Google denn einen Cookie, also eine Textdatei auf einem entfernten Rechner finden!?

        document.cookie existiert, und für Google Analytics wird ein JavaScript von Google eingebunden. Rätsel gelöst.

        LG,
        CK

        1. Hallo Christian,

          aber so einfach ist das doch - hoffentlich - nicht.

          Cookies sollten doch einen Scope haben, d.h. Inhalte der Seite X sehen Cookies von X, aber nicht von Y.

          D.h. wenn www.example.org einen GA-Cookie setzt, und ein Script von Google Analytics nachlädt, dann wäre doch zu hoffen dass dieses Script diesen Cookie nicht sieht.

          Anders ist es, wenn www.example.org selbst ein Stück Code von Google ausliefert; dieses Stück Code sieht einen GA-Cookie, der von example.org stammt.

          Wenn www.example.org ein Bild von commons.wikimedia.org einbindet, und zum Bild ein Set-Cookie Response Header kommt, dann sollte dieser Cookie als Third-Party Cookie deaktivierbar sein (in den Browser-Einstellungen) und er sollte getrennt von den www.example.org Cookies gespeichert sein. Und ein Script, das von www.example.org kommt, sollte den commons.wikimedia.org Cookie auch nicht sehen.

          Zumindest ist das so mein Kenntnisstand. Bin ich da fehlinformiert?

          Rolf

          --
          sumpsi - posui - clusi
          1. Hallo Rolf,

            Zumindest ist das so mein Kenntnisstand. Bin ich da fehlinformiert?

            Ich glaube eher, du hast das missverstanden. Das JS wird im Kontext des Dokuments eingebunden, via <script>-Tag. Die URL ist zwar eine Google-URL, aber der Kontext ist trotzdem der des Dokuments, du hast es ja via <script>-Tag eingebunden.

            Ich habe dir mal einen Versuchsbaukasten aufgebaut. Die Bausteine:

            Um das nachzuvollziehen rufst du also https://cloud.defunct.ch/test.html?set-cookie auf und danach https://cloud.defunct.ch/test.html. Beide male enthält das Textfeld foo=bar.

            Edit: du hast mich übrigens tatsächlich kurz unsicher gemacht 😉

            LG,
            CK

            1. Hallo Christian,

              ich kann es im Moment nicht probieren weil ich fern vom PC bin, aber ich glaube es einfach mal 😀

              Danke für die Klarstellung.

              Rolf

              --
              sumpsi - posui - clusi
      2. Hallo,

        Besser Du bleibst bei Deinen Elchen

        Aber Vorsicht! Die größten Kritiker der Elche sind selber welche...

        Gruß
        Kalk

  2. Hallo,

    Dem Server liegt das Cookie vor. Wie wird nun anhand dieses Cookies die Ausführung des Google Analytics Codes verhindert bzw. wird der Analytics Code ausgeführt aber an der Übermittlung gehindert?

    Aus der Sicht eines serverseitigen Prozesses hat ein Cookie einen bestimmten Namen und einen bestimmten Wert. Wobei dieser Wert auch nur eine Bytefolge ist, kann man in einer Solchen auch weitere Datenstrukturen abbilden.

    Allgemein jedoch kann man feststellen, daß man mit einem Schlüssel-Wert-Paar was ein Cookie liefert, programmiertechnisch all das machen kann, wofür dieser Cookie bestimmt wurde.

    MfG

    1. Hallo pl,

      Allgemein jedoch kann man feststellen, daß man mit einem Schlüssel-Wert-Paar was ein Cookie liefert, programmiertechnisch all das machen kann, wofür dieser Cookie bestimmt wurde.

      Bei Vollmond backt der Elch die hellsten Brötchen.

      Bis demnächst
      Matthias

      --
      Rosen sind rot.
      1. hi @Matthias Apsel

        Allgemein jedoch kann man feststellen, daß man mit einem Schlüssel-Wert-Paar was ein Cookie liefert, programmiertechnisch all das machen kann, wofür dieser Cookie bestimmt wurde.

        Bei Vollmond backt der Elch die hellsten Brötchen.

        Auf den Inhalt kommt es an!

        MfG