XF1.x Cookie SameSite Support 1.0

Cookie SameSite Support

  1. Boothby

    Boothby Bekanntes Mitglied Lizenzinhaber

    Boothby hat eine neue Ressource erstellt:

    Cookie SameSite Support - Cookie SameSite Support

    Weitere Informationen zu dieser Ressource...
     
    otto und McAtze gefällt das.
  2. otto

    otto Bekanntes Mitglied Lizenzinhaber

    funktioniert...
    upload_2020-8-31_9-46-54.png

    Im Chrome werden nun keine Fehler mehr angezeigt.

    Firefox meldet:
    upload_2020-8-31_9-50-24.png

    Sollte soweit also passen, mal sehen was seitens der Nutzer gesagt wird. :)
     
    Hoffi, McAtze und Boothby gefällt das.
  3. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Im FF kann man sich zwar abmelden, aber wird augenscheinlich noch angemeldet angezeigt. Erst ein F5 oder Ctrl+F5 lässt einen dann auch selbst sehen das man abgemeldet ist.
    Dies betrifft aber ausschließlich die Portal (Jaxel) Seite.
    Melde ich mich mit dem FF in der Forenübersicht z.B. ab, dann zeigt er es sofort an.

    Da scheint es also noch ein Problem mit Jaxels Portal zu geben.
     
  4. Boothby

    Boothby Bekanntes Mitglied Lizenzinhaber

    Vielleicht mal ein neues Cookie-Prefix (z.b. xf1a) vergeben, damit alle bisherigen Cookies ungültig sind?

    Falls das Portal nicht den SetCookie-Wrapper von xF verwendet, dann werden die Änderungen bezgl. SameSite natürlich nicht unterstützt.
     
    Zuletzt bearbeitet: 31. Aug. 2020
  5. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Hier mal eine Problembeschreibung eines Mitgliedes und Fach-ITlers aus hobby-gartenteich.de :
    Quelle: Fehler - Startseite nicht aktuell beim Aufruf und Login Probleme- Firefox ab Version 77

    Und das ist seit Firefox v77 so, bis dahin war das nicht. Chrome und Edge funktionieren. Ich weiß langsam nicht mehr weiter...
     
  6. Hoffi

    Hoffi !important Lizenzinhaber

    Ich hab mir gerade mal die Seite angeschaut, und dein server setzt manche Header doppelt mit unterschiedlichen Werten, das könnte die Ursache sein. Und die sagen auch, das der Browser das cachen soll.

    Beispiel:
    Code (Text):
    cache-control: private, max-age=0
    cache-control: max-age=604800, private, must-revalidate
    und weiter unten:
    Code (Text):
    strict-transport-security: max-age=31536000; includeSubDomains
    strict-transport-security: max-age=15768000; includeSubDomains
    Für eingeloggte sende ich extra no-cache.

    Hast du irgendein SEO AddOn installiert, das dir die Header so zerschiesst?
     
  7. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Ich habs befürchtet... nach dem das Thema Cookie abgearbeitet war, konnts ja nur noch in die Richtung gehen. Hatte auch schon Redis im Verdacht weil im fraglichen Zeitraum auch da Updates lagen.

    An den Werten im Header wurde aber schon seit mindestens letzten Winter nichts gemacht, die Probleme kamen aber erst (glaube, müsste nachsehen) ab Juni/Juli.

    Hast du das beim Traktor-Forum so gesehen oder beim Teichforum oder bei beiden?

    Nein, kein Header Addon, wenn - dann hab ich das alleine geschafft (und bin jetzt gerade nicht stolz drauf :D ;) )

    Das Cache-Control dürfte aus der htaccess kommen, das andere, muss ich mal schauen... melde mich. Danke!
     
  8. McAtze

    McAtze Administrator Lizenzinhaber

    Nutz du nicht auch Plesk? Hast du vielleicht bei der Domain Einstellungen unter PHP/Nginx vorgenommen?
     
  9. otto

    otto Bekanntes Mitglied Lizenzinhaber

    kommt aus der htaccess (Hobby-Gartenteich):
    Code (Text):
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Das jedoch:
    kann ich bisher nicht finden...



    Dieses:
    wird wohl daher stammen:
    Code (Text):
    Header set Expect-CT "max-age=0; report-uri=https://www.hobby-gartenteich.de/reportOnly"
    Und dies:
    daher:
    Code (Text):
    <ifmodule mod_headers.c>
        <filesmatch "\\.(ico|pdf|jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=31500000, public"
        </filesmatch>
        <filesmatch "\\.(css)$">
        Header set Cache-Control "max-age=2500000, public"
        </filesmatch>
        <filesmatch "\\.(js)$">
        Header set Cache-Control "max-age=2500000, private"
        </filesmatch>
        <filesmatch "\\.(x?html?)$">
        Header set Cache-Control "max-age=2500000, private, must-revalidate"
        </filesmatch>
        <filesmatch "\\.(php)$">
        Header set Cache-Control "max-age=604800, private, must-revalidate"
        </filesmatch>
    </ifmodule>
    Diesen Part setze ich mal testhalber auf ,max-age=0 und schau was der FF draus macht.
     
  10. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Ok, machen wirs komplett...

    htaccess:
    Code (Text):
    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://www.hobby-gartenteich.de/xf/$1 [L,R=301]


    Redirect 301 ^showthread.php\.php$ /xf/threads/%2/?
    # RewriteCond %{QUERY_STRING} (^|&|\?)t=([0-9]+)($|&)
    # RewriteRule ^showthread\.php$ /threads/%2/? [R=301,L]

    Order deny,allow
    Deny from .virginia.gov
    Deny from .websense.net
    Deny from .bop.gov
    Deny from .hosted.static.webnx.com
    Deny from .mia.tu-berlin.de
    Deny from 130.117.119.
    Deny from .ru
    Deny from .cn
    Deny from .il
    Deny from .in
    Deny from .tr

    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-shockwave-flash
    </IfModule>

    # compress
    <IfModule mod_deflate.c>
    <FilesMatch "\.(js|jpg|jpeg|gif|png|css|txt|html)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 day"
    SetOutputFilter DEFLATE
    </FilesMatch>
    </IfModule>

    <IfModule mod_gzip.c>
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
    mod_gzip_item_include handler ^cgi-script$
    mod_gzip_item_include mime ^text/.*
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_exclude mime ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
    </IfModule>

    # cache
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 1 year"

        # bilder
        ExpiresByType image/gif "access plus 1 year"
        ExpiresByType image/jpeg "access plus 1 year"
        ExpiresByType image/jpg "access plus 1 year"
        ExpiresByType image/png "access plus 1 year"
        ExpiresByType image/x-icon "access plus 1 year"

        # css/javascript
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType text/javascript "access plus 1 month"
        ExpiresByType text/html "access plus 1 month"

        # anderes
        ExpiresByType application/pdf "access plus 1 month"
        ExpiresByType application/javascript "access plus 1 month"
        ExpiresByType application/x-javascript "access plus 1 month"
        ExpiresByType application/xhtml-xml "access plus 1 week"

    </IfModule>

    # 86.400 = 1 Tag, 604.800 = 1 Woche, 2.500.000 = über 1 Monat, 31.500.000 = über 1 Jahr
    <ifmodule mod_headers.c>
        <filesmatch "\\.(ico|pdf|jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=31500000, public"
        </filesmatch>
        <filesmatch "\\.(css)$">
        Header set Cache-Control "max-age=2500000, public"
        </filesmatch>
        <filesmatch "\\.(js)$">
        Header set Cache-Control "max-age=2500000, private"
        </filesmatch>
        <filesmatch "\\.(x?html?)$">
        Header set Cache-Control "max-age=2500000, private, must-revalidate"
        </filesmatch>
        <filesmatch "\\.(php)$">
        Header set Cache-Control "max-age=604800, private, must-revalidate"
        </filesmatch>
    </ifmodule>

    # disable any proxy transformation
      Header set Cache-Control "no-transform"

    # Turn ETags Off
    # <ifmodule mod_headers.c>
    #     Header unset ETag
    #     Header unset Last-Modified
    # </ifmodule>
    # FileETag None

    ########################################################
    #            .htaccess generatet by CCK GROUP          #
    # Please visit http://board.cck-group.info for Support #
    ########################################################
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ^.*AhrefsBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*BackWeb [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Bandit [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*BatchFTP [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*BlackWidow [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Bot\ mailto:craftbot@yahoo\.com [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Buddy [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*ChinaClaw [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Collector [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Copier [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Custo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*DISCo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*DISCo\ Pump [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Download\ Demon [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Download\ Wonder [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Downloader [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Drip [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*eCatch [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*EirGrabber [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*EmailSiphon [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*EmailWolf [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Express\ WebPictures [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*ExtractorPro [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*EyeNetIE [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*FileHound [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Flashget [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*GetRight [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*GetSmart [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*GetWeb! [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Go!Zilla [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Go-Ahead-Got-It [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*gotit [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Grabber [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*GrabNet [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Grafula [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*HMView [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*HTTrack [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Image\ Stripper [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Image\ Sucker [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*FindLinks [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*ichiro [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*curl [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*contype [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*NWSpider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*JoeDog [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*bushsniffer [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*gigabot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*magpie-crawler [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*mirago [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*seekbot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*UnisterBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*WiseNutBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*OutfoxBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*panopta [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*MyEngines-Bot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Jyxobot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*WeatherBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Accoona-AI-Agent [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*RufusBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*trendictionbot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*psbot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*java [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Cerberian [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Girafabot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Xenu\ Link\ Sleuth [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*wget [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Larbin [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Gigabot [OR]
    # RewriteCond %{HTTP_USER_AGENT} ^.*Alexa [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Larbin [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*OutfoxBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*zspider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*RufusBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*gonzo1 [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*iCCrawler [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*genieBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*WebCapture [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*YandexBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Yandex
    RewriteRule ^.* - [F]

    RewriteCond %{HTTP_USER_AGENT} Slurp
    RewriteRule ^.*$ X.html [L]

    # Conten Security Police - nur Inhalte vom eigenen Server laden!
    #Header set Content-Security-Policy: "default-src https: 'unsafe-inline' 'unsafe-eval'; img-src 'self'"

    # HSTS verwenden
    # Pflichtangabe: max-age""
    # Optional: "includeSubDomains"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    # Verhindert mime based attacks, nur IE und Chrome
    Header always set X-Content-Type-Options "nosniff"

    # Aktiviert XSS Praeventions-/Filter-Tools
    # Optional: mode=block
    # Header set X-XSS-Protection "1; mode=block"

    # Begrenzung der frame/iframe Darstellung
    Header append X-Frame-Options "SAMEORIGIN"

    # Cookies nur ueber SSL and kein Javascript Zugriff
    # Optional: Expires, Max-Age, Path, Domain
    Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure"

    # Kein PHP und System-Version ausgeben
    Header always unset "X-Powered-By"


    # Referrer Policy
    Header set Referrer-Policy "origin-when-cross-origin"

    # Expect-CT fuer kommende Implementation Okt 2017
    Header set Expect-CT "max-age=0; report-uri=https://www.hobby-gartenteich.de/reportOnly"

    # Disable server signature
    ServerSignature Off

    # Cookies sicher machen
    Header always edit Set-Cookie (.*) "$1; Secure"

    und Plesk nginx Settings:
    upload_2020-9-7_9-9-56.png
    upload_2020-9-7_9-11-0.png
     
  11. Tealk

    Tealk Bekanntes Mitglied Lizenzinhaber

    Wenn du nginx benutzt wird die htaccess gar nicht abgefragt.
    Oder nutzt du nginx nur als Proxy und leitest an Apache weiter?
     
  12. McAtze

    McAtze Administrator Lizenzinhaber

    Wenn ich das richtig gesehen habe im Screenshot wird Nginx nur für die statischen Sachen genutzt und Apache für die dynamischen.
     
  13. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Jupp, exakt so. So lief das auch seit Jahren ohne murren. :)

    Bei den Cache Einstellungen muss aber wohl mal ausgemistet werden. Das scheint der FF wohl mittlerweile zu genau zu nehmen...
     
  14. Hoffi

    Hoffi !important Lizenzinhaber

    Ich hatte nur ins Teichforum geschaut.
    Da ist echt viel drin, manchmal ist weniger mehr. Ich habe in meiner nginx config nichts über die Cache Header drin, das regelt XF alleine.
    Ich würde die testweise alle mal rausnehmen.
    Und ernsthaft rüber nachdenken komplett zu nginx zu wechseln, ist auch auch für den Server besser.
     
  15. Tealk

    Tealk Bekanntes Mitglied Lizenzinhaber

    Finde auch die Einstellungen viel besser.
     
  16. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Ich hatte das annu dunnemal rein gekloppt, weil - so weit ich mich entsinne, das seitens Google bemängelt wurde (Seitentest).

    Komplett nginx ist nicht, das hat andere Gründe, auf dem Server laufen x verschiedene Seiten/Projekte von mir, und bei dem geringen Nutzeraufkommen bei uns, hatte zumindest vor Jahren ein testweise kompletter Umstieg auf nginx keine nennenswerten Vorteile in Sachen Seitenladezeiten gebracht.
    Aus den genannten Gründen kann/möchte ich nicht komplett auf nginx umsteigen.
     
  17. McAtze

    McAtze Administrator Lizenzinhaber

    Ich nutze auch Plesk und habe verschiedene Domains mit Nginx oder Apache am laufen. Sehr einfach mit Plesk zu handeln.
     
  18. Hoffi

    Hoffi !important Lizenzinhaber

    OK, Plesk deutet auch auf Shared Hosting hin. Dann kann einem die Last auf der Kiste auch egal sein. ;)
     
  19. McAtze

    McAtze Administrator Lizenzinhaber

    Nicht zwingend. Es gibt die Plesk Lizenzen sowohl für Shared als auch für Dedicated Server.
     
  20. otto

    otto Bekanntes Mitglied Lizenzinhaber

    Ist ein Dedicated Root Server . Shared hab ich zuletzt 2003 genutzt.
    Aktuell haben wir nen Server mit Intel(R) Xeon(R) CPU E3-1230 v6 @ 3.50GHz, 64 GB Ram, 2x 512 GB SSD. Reicht für unsere Projekte locker aus, aber darum gehts doch eigentlich gar nicht. ;)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden