Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: OIL.js Cookie Consent Management

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #435 am: 17. Dezember 2021, 23:35:04
    Ja sorry, meinte Cookie Lebenszeit.

    Hab es jetzt auch in Windows 11 und einer älteren macOS Version getestet.

    Windows 11
    Edge: 1 Monat
    Firefox: 1 Monat

    macOS 11.6.1
    Firefox: 1 Monat
    Safari 15.0: 7 Tage

    macOS 12.1
    Safari 15.2: 7 Tage
    (war aber siehe Screenshot auch schon mal 1 Monat, bekomme ich nun aber nicht mehr hin seit löschen der Cookies fürs Forum)
    Chrome: 1 Monat
    Firefox: 1 Monat

    Die Ergebnisse von @noRiddle waren auch überall 1 Monat außer in Firefox. (vermutlich Windows 10)

    Ich schließe daraus, dass es überall 1 Monat ist, außer in Safari 15. Nach löschen der Cookies gab es kein Problem mehr mit dem Cookie Banner im Forum, werde es aber weiter beobachten. Wäre ja für bestehende Kunden die ihre Cookies nicht löschen ein Problem.

    @Tomcraft
    Hast du in Safari 15.x eine längere Cookie-Lebenszeit als 7 Tage für "oil_data"?

    Gruss Timm

    P.S. Als Shopinhaber ist man da sicher eher aufgeregt, als Entwickler, weil der Zwang des Cookiehinweises eh schon nervt und wenn der dann öfter als nötig kommt, sieht man seine Kunden schon abwandern.

    [EDIT Tomcraft 18.12.2021: Beitrag gemäß Wunsch des Verfassers überarbeitet.]

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #436 am: 18. Dezember 2021, 00:00:12
    Hallo Timm,

    das Ablaufdatum des Cookies wird in der Datei /templates/dein_template/javascript/extra/cookieconsent.js.php ab Zeile 80 mit folgendem Code festgelegt.

    Code: Javascript  [Auswählen]
                let cookieDate = new Date;
                //  the oil.js cookie expires after 1 month
                cookieDate.setMonth(cookieDate.getMonth() + 1);

    PS: Wieso die Gültigkeitsdauer im Safari 15.2 nur 14 Tage beträgt ist mir nicht klar.

    Gruss
    Hanspeter

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #437 am: 18. Dezember 2021, 00:35:46
    Hallo Hanspeter

    Danke für die Info  :thumbs:

    Ich hab fälschlicherweise von 14 Tagen in meinem letzten Post gesprochen, weil ich mich vom 24.12. hab irritieren lassen und dann statt 1 Woche wegen 24 irgendwie auf 14 Tage gekommen bin. Es sind 7 Tage.

    Und das hat mich dann auch auf bessere Suchergebnisse gebracht.

    Zeile 91 in /templates/dein_template/javascript/extra/cookieconsent.js.php

    Code: PHP  [Auswählen]
    document.cookie = cookieString;

    scheint dazu zu führen, dass Safari daraus 7 Tage macht.

    Zitat
    [...]
    For first-party cookies set with JavaScript’s document.cookie API, maximum expiration is set to 7 days.

    If the referring domain is a known tracker, and if the URL has query parameters (?key=value) or fragments (#somevalue), cookies set with JavaScript’s document.cookie API have a maximum expiration of 24 hours

    [...]

    First-party cookies set with the Set-Cookie HTTP response header are not impacted by ITP, and have no restrictions placed on their expiration.
    [...]

    Quelle: https://www.cookiestatus.com/safari/

    Warum und wie man das ändern könnte, kann ich nicht sagen. Da mit dem Cookie MODtest die Cookie-Lebenszeit auf 1 Monat gesetzt werden kann in Safari 15.x, kann man sich das da vielleicht abgucken.

    Gruss Timm

    EDIT: Vielleicht ändert man die Stelle und nutzt die inc/xtc_setcookie.inc.php indem man xtc_setcookie() im Code einfügt.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #438 am: 18. Dezember 2021, 01:51:34
    Hallo Timm,

    ich muss meine Antwort #436 ergänzen. Der gepostete Code legt das Ablaufdatum des Cookies "MODOilTrack" fest, und dieses Cookie wird nur gesetzt wenn im Admin unter "Module" -> "System Module" -> "Cookie Consent" -> "Lesbares Cookie" setzen auf "Ja" steht. Die Gültigkeitsdauer des Cookies "oil_data" wird aber in der Datei /templates/dein_template/javascript/oil.min.js  standardmässig auf 31 Tage festgelegt. Will man das ändern so kann man das indem man in der Datei /templates/dein_template/javascript/extra/cookieconsent.js.php ca. Zeile 36 nach

    Code: Javascript  [Auswählen]
    "timeout": 0,

    zum Beispiel folgende Zeile einfügt.

    Code: Javascript  [Auswählen]
    "cookie_expires_in_days": 100,

    Gruss
    Hanspeter

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #439 am: 20. Dezember 2021, 21:48:21
    Moin

    @Hanspeter
    Danke für deinen Lösungsvorschlag. Der funktioniert in Chrome zb, aber in Safari bleibt es bei 7 Tagen.

    @Tomcraft
    Ich wiederhole nochmal meine Frage: Kannst du bei dir auf dem Mac in Safari für das Cookie oil_data eine andere Cookie Lebenszeit als 7 Tage feststellen? Egal ob Forum, Bug Tracker, Demoshop oder zb mein Shop.

    Hinzu kommt, dass ein Kunde, der seine Cookies nie löscht, den neuen Cookiebanner erst angezeigt bekommen würde, wenn die Cookie Lebenszeit abläuft.

    Müsste da nicht schon vorher zwangsweise das Cookie erneuert werden indem der Kunde den neuen Cookiebanner sieht und bestätigen muss? Ähnlich wie es mit dem Datenschutz im Forum zb ist, wenn ich mich nicht irre.

    Würde ein Kunde der einmal alles aktiviert hat mitbekommen, dass man zb neue Analyse Cookies hinzugefügt hat, denen er vorher nicht zugestimmt hat? Weil das "oil_data" Cookie ja noch gültig ist.

    Gruss Timm

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #440 am: 20. Dezember 2021, 22:11:02
    [...]
    @Tomcraft
    Ich wiederhole nochmal meine Frage: Kannst du bei dir auf dem Mac in Safari für das Cookie oil_data eine andere Cookie Lebenszeit als 7 Tage feststellen? Egal ob Forum, Bug Tracker, Demoshop oder zb mein Shop.
    [...]

    Sind bei mir auch 7 Tage in Safari 15.2 unter macOS.

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #441 am: 20. Dezember 2021, 22:37:07
    Und siehst du dadurch Handlungsbedarf?

    Auch vor dem Hintergrund meiner weiteren bisherigen Ausführungen.

    Wenn ich alle 20min (oder der auch mal länger) den Cookiebanner in Safari zu Gesicht bekomme, weil Cookies nicht gelöscht wurden (ich lösche die Cookies nur bei Änderungen, um Änderungen zu sehen) und vermute, dass das der Großteil der Nutzer auch nicht macht, solange es keine Standardeinstellung im Browser ist, würde ich vermuten, dass einige Nutzer dann abspringen.

    Sollte deshalb nicht zwangsweise das Cookie ablaufen, wenn es Änderungen gab und der Kunde dann einmalig neu zustimmen muss? Dann würde man vorheriges verhindern.

    Nachdem ich die Cookies gelöscht habe, wurde ich nie wieder aufgefordert den Cookiebanner zu bestätigen. Es scheint also nur nach Änderungen des Cookiebanners zu Problemen zu kommen. Vielleicht treten diese auch nur in Safari auf. Macht einem als Shopbetreiber aber schon Angst.

    Ich werde meine Cookies auch nochmal überprüfen, ob man die von Amazon Pay, Paypal und des persistenten Warenkorbs alle als technisch notwendig ansehen kann und wenn ja das Tool entfernen. Dann würde der Hinweis in der Datenschutzerklärung ja reichen. Mit dem neuen Amazon Pay Modul sind es ja wesentlich weniger Cookies geworden die der eigenen Seite zugeordnet werden.

    Gruss Timm

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #442 am: 20. Dezember 2021, 22:59:05
    [...]
    @Hanspeter
    Danke für deinen Lösungsvorschlag. Der funktioniert in Chrome zb, aber in Safari bleibt es bei 7 Tagen.
    [...]

    Habe diesbezüglich ein bisschen recherchiert. Die Ursache für die Limitierung auf 7 Tage liegt nicht beim OIL.js sondern an den Tracking-Präventionsmaßnahmen des Safari Browsers, siehe folgende Links.

    https://github.com/js-cookie/js-cookie/issues/642
    https://github.com/js-cookie/js-cookie/wiki/Frequently-Asked-Questions#why-is-my-expiration-time-capped-at-7-days-or-24-hours
    https://www.cookiestatus.com

    PS:
    Eventuell liesse sich die Limitierung umgehen, wenn das Cookie "oil_data" nicht durch das Skript OIL.js, also clientseitig, sondern serverseitig durch PHP gesetzt würde.

    Gruss
    Hanspeter

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #443 am: 20. Dezember 2021, 23:09:41
    Danke Hanspeter. :thx:

    Und siehst du dadurch Handlungsbedarf?
    [...]

    Nein, bisher nicht. :nixweiss:

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #444 am: 21. Dezember 2021, 00:07:00
    Mmh, wie ich bereits schon einmal in diesem Thread erwähnte (Antwort #411) könnte man die Cookie-Entscheidung in LocalStorage speichern anstatt in ein Cookie. Zwar ist es nur eine Frage der Zeit bis die verantwortlichen Shop-Betreiber-Quäler auch darauf kommen und die Heuchelei der ganzen Cookie-Verordnung einsehen (müssen), und dann wird es wieder eine neue Verordnung geben, aber bis dahin...

    Wenn die un-minfied Version zur Verfügung steht ließe sich das leicht umsetzen.

    hpzellers Idee das Oil-Cookie per HTTP zu setzen ist aber auch nicht schlecht.
    Falls es ältere Browser gibt die das Setzen von HTTP-Cookies via Ajax-Response nicht akzeptieren (habe da alte IEs im Verdacht): Die Entscheidung des Kunden zuerst via Ajax in die Session und dann beim nächsten Seitenaufruf als HTTP-Cookie schreiben und die Session-Var wieder löschen.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #445 am: 11. Januar 2022, 16:58:03
    Die Module aus Beitrag 1 wurden nochmal überarbeitet. Eingeflossen ist die Korrektur aus r13930.

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #446 am: 30. Januar 2022, 17:43:29
    [...]
    Außerdem redet auch niemand von "Local Storage", "Session Storage" und "Indexed DB". Damit kann ich genauso Daten speichern und User nachverfolgen als mit Cookies, ja sogar noch um vieles besser.

    Was denkt Ihr ?
    Wie sollen wir das lösen ?
    [...]

    Hier eine mögliche Lösung für modified von Timo:

    /includes/external/smarty/plugins/function.googleanalytics.php ab Zeile 39

    Code: PHP  [Auswählen]
    $beginCode = '
      <script type="text/javascript">
        // Set to the same value as the web property used on the site
        var gaProperty = \''
    .$account.'\';
             
        // Disable tracking if the opt-out cookie exists
        var disableStr = \'ga-disable-\' + gaProperty;
        // BOF - Timo Paul - gaOptout with localStorage
        var gaOptoutSet = document.cookie.indexOf(disableStr + \'=true\') > -1;
        if (window.localStorage) {
          // For backward compatibility: If there is (still) a cookie, also save in localStorage
          if (gaOptoutSet) {
            window.localStorage.setItem(\'gaOptout\', \'true\');
          }
          gaOptoutSet = gaOptoutSet || \'true\' === window.localStorage.getItem(\'gaOptout\');
        }
        // EOF - Timo Paul - gaOptout with localStorage
        if (gaOptoutSet) { // EDT - (( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! )) - gaOptout with localStorage
          window[disableStr] = true;
        }
             
        // Opt-out function
        function gaOptout() {
          document.cookie = disableStr + \'=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/\';
          // BOF - Timo Paul - gaOptout with localStorage
          // set in localStorage
          if (window.localStorage) {
            window.localStorage.setItem(\'gaOptout\', \'true\');
          }
          // EOF - Timo Paul - gaOptout with localStorage
          window[disableStr] = true;
        }
        '
    ."\n";

    Quelle: localStorage für Google Analytics OptOut in der modified eCommerce Shopsoftware
    Die Lösung ist von 03/2019 - kann sich also schon was am Code geändert haben.

    Gruss Timm

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #447 am: 30. Januar 2022, 18:20:37
    Ich hatte ja uch ein Beispiel verlinkt zu einer Website, die die Cookie-Entscheidung in "Local Storage" speichert.
    Es stellt sich allerdings die Frage warum man das machen sollte. Ich monierte ja lediglich, daß die EU-Direktive und die Rechtsprechung heuchlerisch sind, aus mehreren Gründen, unter anderem halt weil man Daten auch in "Local Storage" speichern kann.

    Off topic:
    Peinlich wenn mein holpriges Deutsch auch noch zitiert wird... "genauso......als" ? :hust:

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #448 am: 30. Januar 2022, 19:24:45
    *NACHTRAG*
    Ich fände es viel wichtiger etwas wegen der Add-Blocker zu unternehmen, wie ich es in meinen Ausführungen in Antwort #324 bzgl. uBlock dargelegt habe.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Re: MODUL: OIL.js Cookie Consent Management
    Antwort #449 am: 03. Februar 2022, 16:53:26
    Ich habe so ein bisschen das Gefühl, dass das überhaupt nicht mehr notwendig ist seit der Neuerung mit dem gleichwertigen "Ablehnen"-Button. Jeder, der uBlock gefunden und installiert hat, dem würde ich gewisse Kenntnisse zugestehen und die würden eh direkt den "Ablehnen"-Button klicken.

    [...]
    Außerdem redet auch niemand von "Local Storage", "Session Storage" und "Indexed DB". Damit kann ich genauso Daten speichern und User nachverfolgen als mit Cookies, ja sogar noch um vieles besser.

    Was denkt Ihr ?
    Wie sollen wir das lösen ?
    [...]

    Hier eine mögliche Lösung für modified von Timo:

    /includes/external/smarty/plugins/function.googleanalytics.php ab Zeile 39

    Code: PHP  [Auswählen]
    $beginCode = '
      <script type="text/javascript">
        // Set to the same value as the web property used on the site
        var gaProperty = \''
    .$account.'\';
             
        // Disable tracking if the opt-out cookie exists
        var disableStr = \'ga-disable-\' + gaProperty;
        // BOF - Timo Paul - gaOptout with localStorage
        var gaOptoutSet = document.cookie.indexOf(disableStr + \'=true\') > -1;
        if (window.localStorage) {
          // For backward compatibility: If there is (still) a cookie, also save in localStorage
          if (gaOptoutSet) {
            window.localStorage.setItem(\'gaOptout\', \'true\');
          }
          gaOptoutSet = gaOptoutSet || \'true\' === window.localStorage.getItem(\'gaOptout\');
        }
        // EOF - Timo Paul - gaOptout with localStorage
        if (gaOptoutSet) { // EDT - (( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! )) - gaOptout with localStorage
          window[disableStr] = true;
        }
             
        // Opt-out function
        function gaOptout() {
          document.cookie = disableStr + \'=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/\';
          // BOF - Timo Paul - gaOptout with localStorage
          // set in localStorage
          if (window.localStorage) {
            window.localStorage.setItem(\'gaOptout\', \'true\');
          }
          // EOF - Timo Paul - gaOptout with localStorage
          window[disableStr] = true;
        }
        '
    ."\n";

    Quelle: localStorage für Google Analytics OptOut in der modified eCommerce Shopsoftware
    Die Lösung ist von 03/2019 - kann sich also schon was am Code geändert haben.
    [...]

    Es war uns schon lange klar, aber nun ist das Thema hier auch endgültig vom Tisch: LG München I: Nutzung von Google Webfonts ohne Einwilligung löst DSGVO-Schadensersatzanspruch aus

    Es geht eben nicht nur um Cookies, sondern ganz allgemein auch um Tracking.

    Grüße

    Torsten
    Shop Hosting
    1 Antworten
    285 Aufrufe
    14. Mai 2024, 06:25:35 von karsta.de
    11 Antworten
    2812 Aufrufe
    10. Dezember 2021, 21:55:58 von gdl-joe
    11 Antworten
    3630 Aufrufe
    17. Dezember 2021, 12:40:07 von Pixelknecht
    8 Antworten
    1590 Aufrufe
    16. Oktober 2023, 16:47:54 von Tomcraft
               
    anything