Vielen Dank schon einmal im voraus fürs anschauen.
Wenn ich mir die gesetzten Cookies so anschaue:
Code: Alles auswählen
set-cookie: phpbb3_u=1; expires=Fri, 07-Jan-2022 14:49:57 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_k=; expires=Fri, 07-Jan-2022 14:49:57 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_sid=xxx; expires=Fri, 07-Jan-2022 14:49:57 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_calendar_on_header=0; expires=Fri, 08-Jan-2021 14:49:57 GMT; Max-Age=86400; path=/
sehe ich aktuell ein paar Verbesserungen die ggf. gemacht werden könnten um solche "Falsch-Meldungen" zu vermeiden (das Cookie beinhaltet ja keinerlei sensitiven Informationen, d.H. ein "secure" flag würde auch nicht wirklich ein Sicherheitsgewinn bedeuten, trotzdem wird es in naher Zukunft wahrscheinlich immer mehr solcher Vorgaben / Restriktionen von Browsern geben):
- "path=/" in "path=/forum" ändern
- "secure" hinzufügen so bald das in den Foren-Einstellungen konfiguriert wurde
- "HttpOnly" hinzufügen sollte nicht via Javascript auf das Cookie zugegriffen werden (glaube das macht die Erweiterung nicht?)
Gibt es ggf. phpBB3 interne Funktionen die das obige ggf. schon übernehmen (also richtigen path setzen und secure hinzufügen falls konfiguriert)? Zumindest in meinem ACP unter "Server configuration" -> "Cookie settings" ist beides bei mir für die phpBB cookies entsprechend schon konfiguriert und könnte ggf. von der Erweiterung ausgelesen werden.
Editierung:
Scheinbar gibt es in phpBB3 mit ./phpbb/session.php folgende Funktion (aus phpBB 3.2.11) welche anscheinend das setzen des Cookies mit den korrekten Daten übernimmt:
Code: Alles auswählen
/**
* Sets a cookie
*
* Sets a cookie of the given name with the specified data for the given length of time. If no time is specified, a session cookie will be set.
*
* @param string $name Name of the cookie, will be automatically prefixed with the phpBB cookie name. track becomes [cookie_name]_track then.
* @param string $cookiedata The data to hold within the cookie
* @param int $cookietime The expiration time as UNIX timestamp. If 0 is provided, a session cookie is set.
* @param bool $httponly Use HttpOnly. Defaults to true. Use false to make cookie accessible by client-side scripts.
*/
function set_cookie($name, $cookiedata, $cookietime, $httponly = true)
in dieser Funktion wird auch entsprechend die "Cookie domain", der "Cookie path" und "Cookie secure" aus den "Cookie settings" ausgelesen:
Code: Alles auswählen
header('Set-Cookie: ' . $name_data . (($cookietime) ? '; expires=' . $expire : '') . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . ';' . (($http
only) ? ' HttpOnly' : ''), false);
Ich bin jedoch leider zu wenig in der Materie drin um zu wissen wie man das in einer Erweiterung umsetzen kann.
Automatisch dem Beitrag hinzugefügt nach 33 Minuten 52 Sekunden. Bitte Regel für „Topic-Bumping“ beachten. Danke.
Ich habe jetzt einfach mal blind folgendes in ./ext/hjw/calendar/event/main_listener.php geändert:
Suche:
Code: Alles auswählen
setcookie($this->config['cookie_name'] . '_calendar_on_header', 0, time()+60*60*24, '/', $this->config['cookie_domain'], '');
Ersetze mit:
Code: Alles auswählen
$user->set_cookie('calendar_on_header', 0, time()+60*60*24);
Suche:
Code: Alles auswählen
setcookie($this->config['cookie_name'] . '_calendar_on_header', date ("j"), time()+60*60*24, '/', $this->config['cookie_domain'], '');
Ersetze mit:
Code: Alles auswählen
$user->set_cookie('calendar_on_header', date ("j"), time()+60*60*24);
mit folgendem Ergebnis / neu gesetzten Header die m.M. nach gut aussehen (secure und HttpOnly gesetzt, path nun auf /forum):
Code: Alles auswählen
set-cookie: phpbb3_u=1; expires=Fri, 07-Jan-2022 15:30:31 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_k=; expires=Fri, 07-Jan-2022 15:30:31 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_sid=xxx; expires=Fri, 07-Jan-2022 15:30:31 GMT; path=/forum; secure; HttpOnly
set-cookie: phpbb3_calendar_on_header=0; expires=Fri, 08-Jan-2021 15:30:31 GMT; path=/forum; secure; HttpOnly
Das ganze ist auch nochmal mit der "Events switch on" / "Events switch off" auf phpBB 3.2.11 getestet und das ganze funktioniert weiterhin bei mir. Und als "Bonus" ist die Meldung in der Firefox console bezüglich "SameSite" verschwunden.