Seite 1 von 2

Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mo 29. Aug 2016, 21:04
von langwebdesign
Hallo,

ich habe eine frische 4.9.11 mit Demoinhalte.
Sobald ich das AMR Plugin aktiviere, kommt die Cookie Meldung auf jeder Seite, obwohl ich schon Annehmen geklickt habe.

Sobald ich im Backend den Hacken "Advanced Mod Rewrite aktivieren" raus mache kommt die Meldung nach dem klick auf Annehmen nicht mehr.
Wenn ich den Hacken wieder rein mache kommt die Meldung wieder.

IE genauso wie Firefox, Verlauf leeren im Browser hat auch nix gebracht (vielleicht ein altes Cookie vor AMR?)

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mo 29. Aug 2016, 22:06
von homtata
Das hat 100pro mit der immer noch nicht geklärten Anpassung des Cookie-Pfads in der class.session.php zu tun.
Ich würde auf folgendes wetten, wie in einem anderen Post schon angesprochen:

Ersetze mal Zeile 91 (alt)

Code: Alles auswählen

session_set_cookie_params(0, $path, null, $cfg['secure'], true);
durch

Code: Alles auswählen

session_set_cookie_params(0, '/', null, $cfg['secure'], true);
und berichte mal, obs jetzt geht...

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mo 29. Aug 2016, 22:32
von langwebdesign
Hallo homtata,

und schon ist Ruhe. Danke

Für alle mit dem gleichen Problemchen, die Datei liegt hier:
/contenido/classes/class.session.php

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 09:05
von Faar
homtata hat geschrieben:

Code: Alles auswählen

session_set_cookie_params(0, $path, null, $cfg['secure'], true);

Code: Alles auswählen

session_set_cookie_params(0, '/', null, $cfg['secure'], true);
Was steht denn in $path drin?

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 09:18
von homtata
Na halt jedesmal was anderes, und so ist der Cookie immer für einen anderen Unterordner und eine andere Seite gültig, aber nie übergreifend für die Seite, und DAS ist halt nicht im Sinne des Erfinders ;-)

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 09:25
von Faar
homtata hat geschrieben:Na halt jedesmal was anderes, und so ist der Cookie immer für einen anderen Unterordner und eine andere Seite gültig, aber nie übergreifend für die Seite, und DAS ist halt nicht im Sinne des Erfinders ;-)
Ok :mrgreen:

Da müssten wir mal Herrn Schneider befragen, was sich der Entwickler wohl dabei dachte :roll:

Wobei, ich hätte es lieber, wenn eine Meldung über Cookies an dezenter Stelle nur angezeigt und nicht die Seite dadurch blockiert wird.

Edit:
Was passiert hier in Zeile 81, wenn es eine https:// Verbindung sein sollte?

Code: Alles auswählen

$url = 'http://' . $url;
Wäre parse_url() nicht besser als das ganze Konstrukt ab Zeile 79?
homtata hat geschrieben:Na halt jedesmal was anderes, ...
Gerade festgestellt:
Das tut es bei mir nicht, in einer Testinstallation steht im Session_Cookie für "allowCookie" folgender Pfad: "/cms/"
Weil in Zeile 88 folgendes abgefragt wird:

Code: Alles auswählen

$start = strpos($path, '/');
Das ist so auch richtig, mein Pfad nach der Subdomain ist /cms/

Nun wird in meiner Installation nur einmal das Cookie in der Startseite abgefragt und wenn ich "annehmen klicke, verschwindet die Meldung und ein Cookie ist gesetzt.
In allen folgenden Seiten wird nicht mehr nach den Cookie gefragt.
Aber, wenn ich das "allowCookie" Cookie lösche und weitere Seiten anklicke, kommt die Meldung trotzdem auch nicht mehr.
Irgendwie merkt sich Contenido, dass ich da bin und das Cookie akzeptiert habe.
Oh, da ist noch ein weiteres Cookie, namens "1frontend".
Dann lösche ich doch dieses auch mal und siehe da, schon taucht die Cookie-Abfrage wieder auf.

Das heißt, ob ich Cookies erlaube oder nicht, wird in der Session gespeichert und die Session wird über das Session-Cookie "1frontend" abgefragt.
Witzig an der Sache ist (oder eher nicht), dass dieses Session-Cookie schon beim Aufruf der Seite gesetzt wird, noch bevor ich die Cookie-Abfrage beantworten könnte.

Nun, also gehe ich hin und lösche nochmal alle Cookies und schaue was passiert, wenn ich die Cookie-Anfrage ablehne.
1. Wie bisher, das Session_Cookie "1frontend" wird gesetzt.
Ich lehne Cookies ab.
2. Das Cookie "allowCookies" wird gesetzt.
Nur mit dem Unterschied, dass jetzt eine 0 als Inhalt steht und vorher stand eine 1 drin.
Für mich ergibt das erstmal keine Logik, im Sinne einer Cookie-Erlaubnis-Abfrage.
homtata hat geschrieben:... aber nie übergreifend für die Seite, und DAS ist halt nicht im Sinne des Erfinders ;-)
Anscheinend doch, denn bei mir funktioniert das.
Das Cookie wird einmal gesetzt, der Pfad ist richtig und gilt für alles andere darunter.
Ich vermute, der Code der Klasse ist soweit richtig und es hat in eurem Fall eher was mit dem Session-Handling seitens PHP zu tun.

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 10:40
von langwebdesign
Hi,

hast du auch das "Advanced Mod Rewrite" Installiert und aktiviert? Ohne gehts bei mir auch.

Von der Optik des ganzen bin ich auch nicht überzeugt, fände es besser wenn oben oder unten ein Querbalken mit dem Hinweis wäre.
Um das Problem mit dem Session Cookie zu umgehen könnte man den Button dann nur auf "OK" oder "verstanden" ändern, somit hat man den Besucher darauf hingewiesen und fertig. Den Ablehnen Button würde ich weg lassen.

Aber keine Ahnung ob das Rechtlich in Ordnung ist, hab es so aber schon oft gesehen.

Stephan

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 10:54
von Faar
langwebdesign hat geschrieben:hast du auch das "Advanced Mod Rewrite" Installiert und aktiviert? Ohne gehts bei mir auch.
Ja.
Und diese Cookie Abfrage funktioniert auf allen 4.9 Installationen meiner Kunden.
Von der Optik des ganzen bin ich auch nicht überzeugt, fände es besser wenn oben oder unten ein Querbalken mit dem Hinweis wäre.
Das fände ich auch besser.
Um das Problem mit dem Session Cookie zu umgehen könnte man den Button dann nur auf "OK" oder "verstanden" ändern, somit hat man den Besucher darauf hingewiesen und fertig. Den Ablehnen Button würde ich weg lassen.
Ich auch, denn man kann kein Cookie ablehnen um dann diese Ablehnung in einem Cookie zu speichern.
Technisch-Physikalisch ist das gar nicht anders möglich, das können nur Juristen und Gesetzgeber so sehen.
Aber keine Ahnung ob das Rechtlich in Ordnung ist, hab es so aber schon oft gesehen.
Der Datenschutz-Wahnsinn steht schon lange außerhalb der Realität und Vernunft.
Würde man das so krass umsetzen, dann würde die Cookie-Meldung bei jedem einzelnen Klick auftauchen, weil ja nirgends was gespeichert wird.
Bei den meisten Seiten, die überhaupt eine Cookie-Meldung einsetzen, wird eben nur eine Meldung angezeigt, zur Information ohne Option.
Andere Seiten zeigen erst gar keine Meldung an, da steht das nur in der Rubrik Datenschutz drin, dass es Cookies gibt und vielleicht noch, für was die gut sind.

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Di 30. Aug 2016, 13:44
von frederic.schneider_4fb
Faar hat geschrieben:
homtata hat geschrieben:Da müssten wir mal Herrn Schneider befragen, was sich der Entwickler wohl dabei dachte :roll:
Der Herr Schneider kann sich zwar erinnern, dass wir an der Stelle vor einigen Wochen (Monaten?) etwas gemacht haben und dass das auch einen Zusammenhang mit einer Sicherheitslücke hatte. Aber ich muss das im System in Offenbach nachvollziehen und da bin ich i. d. R. immer nur donnerstags. Also bekommt Ihr am Donnerstag eine Rückmeldung, bevor ich jetzt irgendwas verzapfe, das sich am Ende als falsch herausstellt :)

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Do 1. Sep 2016, 11:52
von frederic.schneider_4fb
Also:
Vorneweg, ich kann noch keine befriedigende Antwort und/oder Lösung anbieten. Tatsache ist, dass wir das im Februar 2015 geändert haben. Die Kollegen und ich sind uns ziemlich sicher, dass diese Änderung einen sicherheitsrelevanten Hintergrund hatte. Allerdings ist der betreffende Kollege, der das seinerzeit geändert hat, momentan in seinem wohlverdienten Urlaub. Auf der anderen Seite sehe ich Euer Problem, da ich das heute auch nachstellen konnte. Es wird daher sicherlich irgendeine Abhilfe geben, da bitte ich aber noch um Geduld. Da es sich um eine sicherheitsrelevante Stelle handelt, seid aber sicher, dass die Geschichte nicht untergeht und bei mir jede Woche auf Wiedervorlage liegt, bis es eine befriedigende Lösung gibt!

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mi 21. Sep 2022, 12:22
von stihlsicher
langwebdesign hat geschrieben:
Mo 29. Aug 2016, 22:32
Hallo homtata,

und schon ist Ruhe. Danke

Für alle mit dem gleichen Problemchen, die Datei liegt hier:
/contenido/classes/class.session.php
homtata hat geschrieben:
Mo 29. Aug 2016, 22:06
Das hat 100pro mit der immer noch nicht geklärten Anpassung des Cookie-Pfads in der class.session.php zu tun.
Ich würde auf folgendes wetten, wie in einem anderen Post schon angesprochen:

Ersetze mal Zeile 91 (alt)

Code: Alles auswählen

session_set_cookie_params(0, $path, null, $cfg['secure'], true);
durch

Code: Alles auswählen

session_set_cookie_params(0, '/', null, $cfg['secure'], true);
und berichte mal, obs jetzt geht...
Gilt übrigens auch noch für die 4.10.1
Ich habe mir da die letzten zwei Abende nen Wolf gesucht, wo das Cookie verloren geht. Heute dann diesen doch eher älteren Thread im Forum gefunden und damit endlich die Lösung im Zusammenspiel von AMR und Cookies.

Falls da noch mal einer sucht.. will ich das hier noch mal ein wenig nach oben pushen.

Viele Grüße
Stihlsicher

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mi 21. Sep 2022, 16:55
von Faar
stihlsicher hat geschrieben:
Mi 21. Sep 2022, 12:22
Gilt übrigens auch noch für die 4.10.1
Falls da noch mal einer sucht.. will ich das hier noch mal ein wenig nach oben pushen.
Ich habe mir das mal in der aktuellen Developer-Version für 4.10.2
https://github.com/CONTENIDO/CONTENIDO/ ... ession.php
angeschaut und da sieht der Code bei Zeile 91 völlig anders aus und ich vermute, dass da bereits etwas geändert wurde.
In der Beschreibung zum Session Cookie steht:
* It will be valid for the host name of the server which generated the cookie
* and the path as in either the configured backend or frontend URL.
*
* @since CON-2785 the cookie path can be configured as $cfg['cookie']['path'].
* Configure in <CLIENT>/data/config/<ENV>/config.local.php
Das heißt, ich kann in der config.local.php "/" angeben und gut sollte sein, ohne den Code zu verändern.
Was aber im ersten Absatz steht, wäre der richtige Pfad, wenn es kein mod_rewrite gäbe, nehme ich ab.
Das ergibt sich auch im Programmcode, wo der Pfad mittels PHP Funktion ermittelt wird.
https://www.php.net/manual/en/function.parse-url.php
"parse_url" ist nun drin, wie am Dienstag 30.August 2016 empfohlen.
Aber hier sehe ich im Code nicht die Berüchsichtigung von mod_rewrite, wenn statt /cms dann / im Browser steht.
Da liegt vermutlich der Wurm vergraben.
Es bräuchte eine Schnittstelle zum AMR, welcher Pfad dann gemod_rewritet wird, und das Ergebnis müsste dann in $path stehen.

Sehe ich das richtig? :shock:

Addendum: Ich sah gerade, dass in Develop-Versionen von 2019 herum das ModRewrite berücksichtigt wurde und herausgenommen.
Warum und wieso weiß ich nicht, aber vermutlich brachte es nicht das Ergebnis, was gewünscht war.

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Mi 21. Sep 2022, 17:02
von stihlsicher
Faar hat geschrieben:
Mi 21. Sep 2022, 16:55
Aber hier sehe ich im Code nicht die Berüchsichtigung von mod_rewrite, wenn statt /cms dann / im Browser steht.
Da liegt vermutlich der Wurm vergraben.
Ja, ich denke, das ist der Punkt. Wobei ich das in einem ersten Schritt in Modul überschrieben. Ohne Erfolg - wobei da evtl. noch ein weiterer Fehler zugeschlagen hatte, den ich später dann gefunden habe. Da ich eine feinere Aufschlüsselung der Cookies benötige, hatte ich das detailierte Consent als JSON im Cookie abgelegt. Die Auswertung mit PHP und JSON_decode ist allerdings durch automatisch escapte Anführungszeichen gescheitert. Hab ich aber erst später gesehen und behoben. Deshalb kann es auch sein, dass es reicht, im Modul im Befehl "setcookie" den Pfad entsprechend auf "/" zu setzen.

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Fr 30. Sep 2022, 07:34
von stihlsicher
Guten Morgen,

zwei Dinge sind mir in dem Zusammenhang aufgefallen:
1) Ich setzte mein Cookie für den Cookie-Consent mit einer Lifetime von 1 Jahr. Dieses Cookie wird aber gar nicht durchgereicht an das Modul, wenn der Browser eine ganz neue Session initiiert. Stattdessen bekomme ich bei jeder neuen Session wieder die Cookie-Abfrage (unschön und unnötig).
Hat einer eine Idee, an welcher Stelle ich da suchen kann?

2) Bei der Suche habe ich in der class.session.php folgende Zeile gesehen:

Code: Alles auswählen

$path = cRegistry::getConfigValue('cookie', 'path', $path);
Bei der Nutzung von AMR würde es also reichen, in der System-Konfiguration (Administration -> System -> Experteneinstellungen) ein Werte Trippel (cookie,path,/) einzugeben, um den Pfad zentral zu setzen. Das würde für die Konfiguration im Zusammenhang mit AMR ja auch ausreichen.

Viele Grüße
stihlsicher

Re: Meldung "Diese Seite verwendet Cookies." und AMR

Verfasst: Fr 30. Sep 2022, 11:08
von Faar
Ich würde mal einen Cookie-Manager im Browser installieren, ob das Cookie wirklich gesetzt wurde und wie der Pfad aus sieht.