Seite 1 von 2

Cookie von Contenido

Verfasst: Mo 22. Jun 2020, 08:52
von lunsen_de
Hallo,

besteht die Möglichkeit dem Cookie von Contenido (1frontend) eine Beschreibung zu geben? Bspw.: Description: "Eindeutige ID, die die Sitzung des Benutzers identifiziert.“ Type: „Necessary“. Damit könnte man nach aktueller Urteilslegung auf Banner etc. verzichten.

Grüße larslunsen

Re: Cookie von Contenido

Verfasst: Mo 22. Jun 2020, 09:05
von Faar
Man kann beliebiges rein schreiben, das ist kein brauchbares Argument.
Wichtig ist, was es ist. Und wenn es zum einen technisch ist, so wie "1frontend" als erster Frontendbesucher, dann handelt es sich um ein Session Cookie, um die Einstellungen für diesen Besucher zu speichern.
Session erkennt man im Bild.
Dort steht als Info dann, dass die Gültigkeitsdauer auf diese Sitzung beschränkt ist.
Beendet man die Sitzung, ist das Cookie weg.
Das ist Erklärung genug.
Kocki.JPG
Kocki.JPG (14.85 KiB) 4919 mal betrachtet

Re: Cookie von Contenido

Verfasst: Mo 22. Jun 2020, 09:50
von lunsen_de
Hallo, danke für die Info. Soweit verständlich, aber im Firefox (Konsole) steht bei einer Seite die nur das Frontend Cookie setzt:

Das Cookie “1frontend” wird in Zukunft bald abgelehnt werden, da es für das Attribut "sameSite" entweder "none" oder einen ungültigen Wert angibt, ohne das "secure"-Attribut zu verwenden. Weitere Informationen zum "sameSite"-Attribut finden Sie unter https://developer.mozilla.org/docs/Web/ ... e/SameSite

Ist hier nicht Handlungsbedarf, kann man das Attribut irgendwo eintragen/ändern?

Grüße larslunsen

Re: Cookie von Contenido

Verfasst: Mo 22. Jun 2020, 10:32
von xmurrix
Wenn die Webseite unter HTTPS läuft, was ja heutzutage der Standard sein sollte, kann man in der data/config/{environment}/config.misc.php den Wert zum Versenden von Cookies nur über sichere Verbindungen aktivieren.

Code: Alles auswählen

// (bool) Enforce HTTPS for cookies
$cfg['secure'] = true;
Damit erübrigt sich auch das Setzen der SameSite Option für das Cookie, falls der Browser eine nicht gesetzte SameSite Option als "None" interpretiert.

CONTENIDO kann momentan nicht die SameSite Option setzen, ich sehe hier auch Handlungsbedarf, das sollte konfigurierbar sein.

Nachtrag:
Das Setzen des SameSite Option für Cookies ist in PHP ab der Version 7.3 möglich. Wenn das eingebaut wird, muss für CONTENIDO die PHP-Voraussetzung von ">= 7.0" auf ">= 7.3" erhöht werden.

Re: Cookie von Contenido

Verfasst: Di 23. Jun 2020, 09:54
von Faar
xmurrix hat geschrieben:
Mo 22. Jun 2020, 10:32
Nachtrag:
Das Setzen des SameSite Option für Cookies ist in PHP ab der Version 7.3 möglich. Wenn das eingebaut wird, muss für CONTENIDO die PHP-Voraussetzung von ">= 7.0" auf ">= 7.3" erhöht werden.
Da sowieso bei vielen Hostern PHP 7.2 auslaufen wird, sehe ich kein Problem, eine neuere Contenido Version ab PHP 7.3 freu zu geben.
Außer man baut IF(PHP<=7.2) ein, damit es abwärtskompatibel bleibt.

Re: Cookie von Contenido

Verfasst: Di 23. Jun 2020, 09:59
von xmurrix
Faar hat geschrieben:
Di 23. Jun 2020, 09:54
...Außer man baut IF(PHP<=7.2) ein, damit es abwärtskompatibel bleibt...
Macht es die ganze Sache nicht komplizierter, wenn man eine neue Konfiguration einführt, die aber erst ab PHP 7.3 verwendet wird?

Re: Cookie von Contenido

Verfasst: Di 23. Jun 2020, 10:03
von Faar
lunsen_de hat geschrieben:
Mo 22. Jun 2020, 09:50
Das Cookie “1frontend” wird in Zukunft bald abgelehnt werden, da es für das Attribut "sameSite" entweder "none" oder einen ungültigen Wert angibt, ohne das "secure"-Attribut zu verwenden. Weitere Informationen zum "sameSite"-Attribut finden Sie unter https://developer.mozilla.org/docs/Web/ ... e/SameSite

Ist hier nicht Handlungsbedarf, kann man das Attribut irgendwo eintragen/ändern?
Ich habe das SameSite-Cookie Thema noch nicht ganz intus, aber kann es sein, dass es Probleme gibt, wenn man folgende Installationen hat?
1. linear
Frontend: https://domain.tld/
Backend: https://backend.domain.tld/

2. gemischt
Frontend: https://domain.tld/
Backend: http://backend.domain.tld/

Ich habe beide Fälle, weil die Geschichte mit dem SSL-Zertifkat immer noch eine Scheiße ist und mal bekommt man eines für alle Subdomains und mal nur für die Hauptdomain.
Also gilt das Cookie dann nicht mehr für Subdomains oder mit und ohne SSL?

Re: Cookie von Contenido

Verfasst: Di 23. Jun 2020, 10:10
von Faar
xmurrix hat geschrieben:
Di 23. Jun 2020, 09:59
Faar hat geschrieben:
Di 23. Jun 2020, 09:54
...Außer man baut IF(PHP<=7.2) ein, damit es abwärtskompatibel bleibt...
Macht es die ganze Sache nicht komplizierter, wenn man eine neue Konfiguration einführt, die aber erst ab PHP 7.3 verwendet wird?
:shock:
Ich weiß nicht, ob ich die Frage richtig verstanden habe.
Aber wenn die Browser das bisherige Cookie nicht akzeptieren wollen, wird die Frage sowieso obsolet, dann muss man es für php 7.3 anpassen, weil ohne das Cookie würde das Frontend nicht mehr richtig funktionieren, der Frontend-Login sowieso nicht mehr.
Praktisch wäre das komplette Thema Cookies in Contenido auf dem Prüfstand.
Oder?

Re: Cookie von Contenido

Verfasst: Fr 26. Jun 2020, 10:15
von emergence
dafür gibt es ne ganz simple lösung...
man kann ja den cookie path konfigurieren...

ist ja so definiert in class cSession
cRegistry::getConfigValue('cookie', 'path', $path);

definier doch einfach mal als path

/; sameSite=lax

sollte das thema mit cookie akzeptanz lösen...

Re: Cookie von Contenido

Verfasst: Fr 26. Jun 2020, 12:36
von lunsen_de
Hallo, wo finde ich das bei 4.9.12 und sogar vielleicht bei 4.8?

Grüße larslunsen

Re: Cookie von Contenido

Verfasst: Mo 29. Jun 2020, 14:48
von emergence
bei der 4.9.12 sollte das in der

data/config/{environment}/config.misc.php

gleich nach

Code: Alles auswählen

// (bool) Enforce HTTPS for cookies
$cfg['secure'] = false;
folgendes setzen...

Code: Alles auswählen

$cfg['cookie']['path'] = '/; sameSite=lax';
das sollte es tun...

Re: Cookie von Contenido

Verfasst: Di 17. Nov 2020, 16:57
von Faar
emergence hat geschrieben:
Mo 29. Jun 2020, 14:48
bei der 4.9.12 sollte das in der

data/config/{environment}/config.misc.php

gleich nach

Code: Alles auswählen

// (bool) Enforce HTTPS for cookies
$cfg['secure'] = false;
folgendes setzen...

Code: Alles auswählen

$cfg['cookie']['path'] = '/; sameSite=lax';
das sollte es tun...
Mir fällt gerade auf, dass dieser Eintrag für das gesamte System gilt.
Was ist aber, wenn ein Mandant https hat und einer nicht?
Oder Frontend https aber das Backend nicht, weil ein Zertifikat keine Subdomains mit einschließt?

Re: Cookie von Contenido

Verfasst: Mi 18. Nov 2020, 09:25
von Oldperl
Faar hat geschrieben:
Di 17. Nov 2020, 16:57
Mir fällt gerade auf, dass dieser Eintrag für das gesamte System gilt.
Was ist aber, wenn ein Mandant https hat und einer nicht?
Oder Frontend https aber das Backend nicht, weil ein Zertifikat keine Subdomains mit einschließt?
Dann setzt Du den Config-Wert in einer lokalen Config-Datei des Mandanten, sollte auch gehen.

Gruß aus Franken

Ortwin

Re: Cookie von Contenido

Verfasst: Mi 18. Nov 2020, 10:38
von Faar
Ok, danke Dir.

Überschreibt das dann also den Wert, der in der generellen Config steht.

Gruß,
Frank

Re: Cookie von Contenido

Verfasst: Mi 18. Nov 2020, 11:26
von Oldperl
Faar hat geschrieben:
Mi 18. Nov 2020, 10:38
Ok, danke Dir.

Überschreibt das dann also den Wert, der in der generellen Config steht.
Sorry, ich habe nochmal geschaut. Leider funktioniert das nicht, da Contenido die startup-Datei des Core im Frontend erst nach dem Include der config-Dateien des Frontend einbindet. So ist leider das config-Array, und damit auch die Einstellungen der config-misc, dort noch gar nicht vorhanden.

Code: Alles auswählen

// Clients local configuration
if (file_exists($frontend_path . 'data/config/' . CON_ENVIRONMENT . '/config.local.php')) {
    @include($frontend_path . 'data/config/' . CON_ENVIRONMENT . '/config.local.php');
}

// CONTENIDO startup process
if (!is_file($contenido_path . 'includes/startup.php')) {
    die("<h1>Fatal Error</h1><br>Couldn't include CONTENIDO startup.");
}
include_once($contenido_path . 'includes/startup.php');
Alternativ könnte man die config.local.php in /data/config nehmen, müsste dann aber dort eine Erkennung für das Frontend und den Client mit einbauen um entsprechende Änderungen der Einstellung in der $cfg nur dort zu machen.

Gruß aus Franken

Ortwin