Seite 1 von 1

Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 16:53
von rubybadlands
Hallo zusammen,

leider habe ich keinen Bereich für Sicherheitsthemen gefunden, deshalb hier.

Hat jemand von euch eine CSP und weitere Sicherheitsmechanismen eingerichtet? Gibt es eine speziell auf webEdition zugeschnittene Anleitung? Erfahrungsgemäß (Erfahrungen mit anderen CMS) kommt es da regelmäßig zu Problemen. Da ich webEdition noch nicht so gut kenne, würde ich mich über Feedback freuen.

Danke,
Ruby

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 18:49
von rubybadlands
Hallo nochmal,

habe die .htaccess für den Start wie folgt manipuliert:

Code: Alles auswählen

<IfModule mod_headers.c>
    Header set X-Frame-Options "sameorigin"
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options "nosniff"
    Header set Strict-Transport-Security "max-age=31536000"
    Header set Content-Security-Policy "default-src 'self';"
</IfModule>
Damit bekomme ich bei Sicherheitstests nun gute Ergebnisse und im Frontend funktioniert soweit noch alles.

Allerdings leidet das Backend, man kommt zwar rein, kann aber nichts mehr machen. Hat jemand Ideen, an welchen Stellen ich die CSP verfeinern muss, damit das Backend wieder läuft? (Die CSP oben ist ja bewusst erst mal sehr einfach gehalten).
Ideal wäre natürlich ein Quick Fix ;)

Herzlichst,
Ruby

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 18:55
von mokraemer
Welche Version von WE setzt du denn ein?
Wenn du das CSP setzt, dann mußt du alle Inhaltstypen regulieren. Und wir setzen aktuell noch inline-js ein, was durch das Setzen der CSP primär verboten ist.
Es ist hilfreich die Debug-Konsole des Browsers zu öffnen - die schreiben eigentlich dann alles raus, was sie wg. welcher Einstellung blockieren.

Ich denke du solltest auch
style-src 'self' 'unsafe-inline'
setzen, sonst ist das style-Attribut auch bei allen Elementen raus.

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 19:09
von rubybadlands
Hi,

danke für die schnelle Rückmeldung.

Der Einsatz von inline-js schafft ja potentielle Einfallstore. Wie unterbindet ihr daraus entstehende Gefahren?

Viele Grüße,
Ruby

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 19:09
von rubybadlands
V 7.0.4

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 22:21
von WBTMagnum
Hallo Ruby,

Eine relativ einfache Maßnahme ist, das Backend unter einer eigenen (Sub-)Domain zu betreiben. Dann kannst du für Frontend und Backend eigene optimierte CSP-Regel definieren. Zusätzlich ist damit das Backend auch nicht direkt über das Frontend aufrufbar.

HTH,
Sascha

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 28. Mär 2019, 23:25
von rubybadlands
Hi Sascha,

interessante, wenngleich unkonventionelle Idee.
Gibt es hierfür eine Anleitung?

Danke,
Ruby

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Fr 29. Mär 2019, 00:13
von WBTMagnum
Hallo Ruby,

Glaube nicht, dass es dafür eine Anleitung gibt. Ist aber nicht soooo kompliziert.

Hier noch ein paar ergänzende Infos:
Wir verwenden das idR bei Multi-Domain Setups. Dabei wird wE auf der Backend-Domain installiert. Die Sites über die Frontend Domain(s) bereitgestellt. Der Rest ist dann Hosting-Setup und ggf. Setzen von Symlinks.

HTH,
Sascha

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Mo 16. Dez 2019, 19:55
von mausi
... hier mit funktioniert alles soweit (7.04) - Knackpunkt war 'unsafe-eval':

Header set Content-Security-Policy: "default-src 'self' domain.tld; script-src 'self' 'unsafe-inline' 'unsafe-eval' domain.tld; style-src 'self' 'unsafe-inline' domain.tld; img-src 'self' domain.tld; font-src 'self' domain.tld; connect-src 'self' domain.tld;"
Header set X-Content-Security-Policy: "default-src 'self' domain.tld; script-src 'self' 'unsafe-inline' 'unsafe-eval' domain.tld; style-src 'self' 'unsafe-inline' domain.tld; img-src 'self' domain.tld; font-src 'self' domain.tld; connect-src 'self' domain.tld;"
Header set X-WebKit-CSP: "default-src 'self' domain.tld; script-src 'self' 'unsafe-inline' 'unsafe-eval' domain.tld; style-src 'self' 'unsafe-inline' domain.tld; img-src 'self' domain.tld; font-src 'self' domain.tld; connect-src 'self' domain.tld;"

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 19. Dez 2019, 14:22
von mausi
Nachtrag: für Captcha-Bilder muss noch "data:" bei img-src gesetzt sein ...

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 19. Dez 2019, 14:29
von mokraemer
ich überlege, ob man das evtl. auch sammeln sollte und auf eine zentrale WE Seite packt. Die Einstellungen werden sich ja sicherlich noch ändern. Wir wollen ja zumindest von dem unsafe-inline-js weg. In WE 8.1 dürfte es eigentlich kein js-eval mehr geben; es sei denn durch eine Lib.

Re: Sicherhet: Content Security Policy / XSS

Verfasst: Do 19. Dez 2019, 14:41
von mausi
... macht evtl. Sinn. Ggf. das hier noch dabei, da hätte man soweit alles abgedeckt:

Header set X-Frame-Options SAMEORIGIN
Header always set Feature-Policy "geolocation 'none'; midi 'none'; camera 'none'; usb 'none'; magnetometer 'none'; accelerometer 'none'; vr 'none'; speaker 'none'; ambient-light-sensor 'none'; gyroscope 'none'; microphone 'none'"
Header always set Referrer-Policy "strict-origin"