Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: contao_csrf_token bei Verwendung von js-cookie

  1. #1
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard contao_csrf_token bei Verwendung von js-cookie

    Hallo zusammen,

    ich habe einen simplen Alters-Verifizierung-Störer geschrieben, bei dem der Besucher zunächst zustimmen, muss, dass er über 16 Jahre alt ist, um die Seite zu nutzen. Beim Akzeptieren setze ich mittels js-cookie (https://github.com/js-cookie/js-cookie) ein entsprechendes Cookie (secure, path=/) gesetzt. Beim erneuten Laden der Seite befindet sich nun plötzlich das csrf_https-contao_csrf_token Cookie im Anfrage-Header, obwohl kein Formular oder ähnliches eingebunden ist (auch der Störer hat kein Formular; generell ändert sich der Content nicht beim Akzeptieren des Cookies, lediglich der Störer entfällt). Dadurch ist natürlich kein Shared Cache möglich, diesen möchte ich aber gerne nutzen.
    Hat jemand eine Idee?

    Danke und liebe Grüße
    Matze

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.060
    Partner-ID
    10107

    Standard

    Das CSRF Token Cookie wird eben gesetzt, weil nun ein Cookie mit potentiell persönlichen Daten vorhanden ist. Also das CSRF Token Cookie wird von Contao immer dann gesetzt, wenn irgendwelche Cookies existieren (außer das CSRF Token Cookie selbst).

    Wofür genau brauchst du dieses Cookie?
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard

    Hi Spooky,

    bei einem anderen Contao Projekt nutzen wir einen Cookie-Consent Manager, der ebenfalls (third-party) Cookies setzt (Domain entspricht der Contao-Domain), dort setzt Contao das csrf_token Cookie nicht, obwohl definitiv im Request die Consent Cookies gesetzt werden (cookie: __cmpcc=1; __cmpconsent19334=XXX; __cmpcccu19334=XXX). Alle Seiten in diesem Projekt werden aus dem Shared-Cache ausgegeben. Beide Projekte nutzen Contao 4.12. Deswegen bin ich ja so ratlos.

    Die Seite darf nur genutzt werden, wenn der User über 16 ist (Alkohol), deswegen benötige ich das Cookie.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.060
    Partner-ID
    10107

    Standard

    Zitat Zitat von derMatze82 Beitrag anzeigen
    bei einem anderen Contao Projekt nutzen wir einen Cookie-Consent Manager, der ebenfalls (third-party) Cookies setzt (Domain entspricht der Contao-Domain), dort setzt Contao das csrf_token Cookie nicht, obwohl definitiv im Request die Consent Cookies gesetzt werden (cookie: __cmpcc=1; __cmpconsent19334=XXX; __cmpcccu19334=XXX).
    Evt. verwendest du dort eine eigene COOKIE_ALLOW_LIST bzw. COOKIE_REMOVE_FROM_DENY_LIST?


    Zitat Zitat von derMatze82 Beitrag anzeigen
    Die Seite darf nur genutzt werden, wenn der User über 16 ist (Alkohol), deswegen benötige ich das Cookie.
    Aber dann kannst du den Shared Cache ja ohnehin nicht benutzen, da der Response von diesem Cookie abhängt.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard

    Danke für den Tipp, ich habe in die .env nun folgende Zeile eingefügt:
    COOKIE_ALLOW_LIST=PHPSESSID,csrf_https-contao_csrf_token,csrf_contao_csrf_token,trusted_d evice,REMEMBERME
    Jetzt kommt die Seite auch nach Akzeptieren des Cookies aus dem Shared Cache.

    Da die Prüfung und das Setzen des Cookies JS seitig passiert, passt es nun so

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.060
    Partner-ID
    10107

    Standard

    Zitat Zitat von derMatze82 Beitrag anzeigen
    Da die Prüfung und das Setzen des Cookies JS seitig passiert, passt es nun so
    Wenn das Cookie ohnehin für den Server uninteressant ist, dann solltest du auch kein Cookie setzen. Nutze localStorage dafür.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard

    da hast du Recht, danke für den Ansatz

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •