• Wenn du hier im Forum ein neues Thema erstellst, sind schon Punkte aufgeführt die du ausfüllen musst. Das dient im Allgemeinen dazu die notwendigen Informationen direkt mit der Frage bereitzustellen.
    Da in letzter Zeit immer wieder gerne das Formular gelöscht wurde und erst nach 3 Seiten Nachfragen die benötigten Infos für eine Hilfe kommen, werde ich nun jede Fragestellung die nicht einmal annähernd das Formular benutzt, sofort in den Sondermüll schicken.
    Füllt einfach die abgefragte Daten aus und alle können euch viel schneller helfen.

XF1+2 CSP und andere Security Headers - wie handhabt ihr das Thema?

otto

Die 5k-Labertasche
Lizenzinhaber
Registriert
11. Dez. 2010
Beiträge
5.341
Punkte
448
XF Version
  1. 2.2.15
XF Instanz
Hosting
PHP-Version
8.2.x
MySQL/MariaDB
10.3.x
Provider/Hoster
Strato/Hetzner
CSP - Content Security Police und all die anderen Security Headers - wie handhabt ihr das Thema.

Hier mal ein Beispiel meiner aktuellen Einstellungen in der .htaccess eines meiner Foren:

Code:
ServerSignature Off
Header set Content-Security-Policy: "default-src https: 'unsafe-inline' 'unsafe-eval'; img-src 'self'"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header append X-Frame-Options "SAMEORIGIN"
Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure"
Header always unset "X-Powered-By"
Header set Referrer-Policy "origin-when-cross-origin"
Header set Expect-CT "max-age=0; report-uri=https://www.domain.de/reportOnly"
Header always set Feature-Policy "geolocation none; midi none;notifications none; push none; sync-xhr none; microphone none; camera none; magnetometer none; gyroscope none; speaker self; vibrate none; fullscreen self; payment none"
upload_2018-11-28_13-12-27.png upload_2018-11-28_13-13-23.png
Das Ergebnis ist noch verbesserungswürdig - ja, aber wohl besser als gar nichts. ;)

Wer seine Seite Testen mag: Analyse your HTTP response headers

Mit der Content Security Police tu ich mich schwer, da man da echt genau hinschauen muss, was man einstellt, da man sonst die Seite in deren Funktion schnell mal unversehens einschränkt, bis hin zum nicht mehr möglichen Login... :D ;)

Welche Einstellungen nutzt ihr also?
Nutzt ihr die Headers überhaupt?


Edit: @McAtze es wäre manches mal von Vorteil, keine Wahl zwischen XF 1.5 und 2.x treffen zu müssen, wie in diesem Thema z.B.. Vielleicht kann man das ja etwas weniger restriktiv machen? :)
 
Zum Thema Security Headers habe ich ja hier schon einmal etwas geschrieben.

Wenn ein unsafe-inline genutzt wird, kann man das CSP eig. gleich weg lassen. Leider gibt es bei XF keine Möglichkeit das sicher einzustellen. :'(

So würde ich es schreiben:
Code:
Content-Security-Policy: "default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'"
Wichtig ist dabei, wenn man externe Scripts einbindet müssen die dort auftauchen z.B.:
Code:
script-src 'self' 'unsafe-inline' https://url.de/piwik.js;
Mit der Content Security Police tu ich mich schwer
Und das das CSP bei dir nicht geladen wird liegt glaub ich an dem "https:" das du da drin verwendest. Das kann so nicht richtig sein.


Bei Expect-CT funktioniert das report-uri= nur wenn du es über Welcome to report-uri.com nutzt und das macht das ganze eig. wieder unbrauchbar.
Mehr dazu findest du hier.


Ich würde Referrer-Policy "origin-when-cross-origin" in Referrer-Policy "same-origin" ändern.

PS: Mir fehlt dieser Inline Code so sehr :'(
 
Zuletzt bearbeitet:
Edit: @McAtze es wäre manches mal von Vorteil, keine Wahl zwischen XF 1.5 und 2.x treffen zu müssen, wie in diesem Thema z.B.. Vielleicht kann man das ja etwas weniger restriktiv machen? :)
Ist mir gestern auch schon aufgefallen. Werde ich nachher mal anpassen.
 
Und das das CSP bei dir nicht geladen wird liegt glaub ich an dem "https:" das du da drin verwendest. Das kann so nicht richtig sein.
Genau genommen ist die Zeile bei mir auskommentiert - die CSP Zeile hatte ich mal irgendwo her zum Testen kopiert - frag mich lieber nicht.

Was mich halt stutzig gemacht hatte - auf Xenforo.com steht mehrfach zu lesen, das Xenforo CSP nicht unterstützen würde, weil da auch andere schon danach gefragt hatten. Wie das mit 2.x ist kann ich immo noch nicht sagen, ich komm einfach nicht zum testen ... so ohne deutsches Sprachpaket. :D ;) ;) *duckundwech*

Zum Rest schon mal danke, ich versuch mal am WE paar Minuten abzuzweigen das mal genauer zu verstehen. Der Teufel steckt halt im Detail.

@McAtze
Dankefein. :)
 
@Tealk
Deine CSP produziert bei mir in beiden Foren dieses:
upload_2018-11-28_19-39-9.png
Ich kontakte mich wie da steht nun mal selbst und frage mich: warum? ;)
 
Was mich halt stutzig gemacht hatte - auf Xenforo.com steht mehrfach zu lesen, das Xenforo CSP nicht unterstützen würde, weil da auch andere schon danach gefragt hatten. Wie das mit 2.x ist kann ich immo noch nicht sagen, ich komm einfach nicht zum testen ... so ohne deutsches Sprachpaket. :D ;) ;) *duckundwech*
XF nutzt Inline JS, damit kannst Du CSP im Grunde knicken da witzlos.

Man könnte natürlich etwas basteln was serverseitig die Inline-Codeblöcke mit Hashes versieht und diese Whitelisten, aber damit gewinnt man nichts - man drückt damit quasi unbekanntem Code einen Stempel "ist sauber" auf.

Ist eigentlich noch schlechter als gar kein CSP.

Und sobald irgendwo Werbung ins Spiel kommt die über selbstgehostete Images hinausgeht kann man es im Grunde erst recht knicken.
 
Zuletzt bearbeitet:
@otto also wenn du Referrer-Policy abänderst und CSP weg lässt sieht das ganze eig. gut aus.
das Xenforo CSP nicht unterstützen würde
Unterstützt ist da das falsche Wort eig. Naja ich kenn kaum ein CMS das durch CSP nicht zerstört wird.

Deine CSP produziert bei mir in beiden Foren dieses:
Code:
# Add security and privacy related headers
<IfModule mod_env.c>
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Robots-Tag "all"
    Header set X-Download-Options "noopen"
    Header set X-Permitted-Cross-Domain-Policies "none"
    Header set Referrer-Policy "same-origin"
    Header set Content-Security-Policy: "default-src 'none'; connect-src 'self'; font-src 'self'; img-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'"
    Header set Expect-CT "enforce, max-age=21600"
    Header set Set-Cookie "^(.*)$ $1;HttpOnly;Secure"
    SetEnv modHeadersAvailable true
</IfModule>
Folgendes funktioniert bei mir ohne den genannten Fehler.

Und ja wie @Kirby schon sagt, CMS und CSP vertragen sich nicht. Lasst es einfach weg, ist besser für die Useability

Teilweise OOT:
Was aber auch ein sehr wichtiger Punkt für das ganze ist, ist die TLS Konfiguration. Gibt es hier auch einen sehr guten Text zu.
 
Zuletzt bearbeitet:
Zurück
Oben