Meldung "Diese Seite verwendet Cookies." und AMR

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Meldung "Diese Seite verwendet Cookies." und AMR

Beitrag von langwebdesign » Mo 29. Aug 2016, 21:04

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?)
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

homtata
Beiträge: 1136
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

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

Beitrag von homtata » 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...

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

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

Beitrag von langwebdesign » 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
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

Faar
Beiträge: 1816
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

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

Beitrag von Faar » Di 30. Aug 2016, 09:05

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?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1136
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

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

Beitrag von homtata » Di 30. Aug 2016, 09:18

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 ;-)

Faar
Beiträge: 1816
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

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

Beitrag von Faar » Di 30. Aug 2016, 09:25

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.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

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

Beitrag von langwebdesign » Di 30. Aug 2016, 10:40

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
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

Faar
Beiträge: 1816
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

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

Beitrag von Faar » Di 30. Aug 2016, 10:54

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.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

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

Beitrag von frederic.schneider_4fb » Di 30. Aug 2016, 13:44

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 :)
Frederic Schneider
Entwickler bei der four for business AG

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

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

Beitrag von frederic.schneider_4fb » Do 1. Sep 2016, 11:52

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!
Frederic Schneider
Entwickler bei der four for business AG

stihlsicher
Beiträge: 4
Registriert: Mo 24. Jun 2013, 10:34
Kontaktdaten:

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

Beitrag von stihlsicher » Mi 21. Sep 2022, 12:22

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

Faar
Beiträge: 1816
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

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

Beitrag von Faar » Mi 21. Sep 2022, 16:55

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.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

stihlsicher
Beiträge: 4
Registriert: Mo 24. Jun 2013, 10:34
Kontaktdaten:

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

Beitrag von stihlsicher » Mi 21. Sep 2022, 17:02

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.

Antworten