Antwort an „Julius“ verfassen

Hallo Michael,

eine CSP dient dazu, dass der Server dem Browser mitteilen kann, aus welchen Quellen die ausgelieferte Website „Content“ (CSS, Scripte, Fonts, Bilder etc.) beziehen können soll. Im Normalfall erlaubt die CSP einer Website auch nur die Quellen, die sie wirklich braucht.

Dies dient als zusätzliche Sicherheitsebene, falls die Logik der Website Fehler aufweist.

Sanitizer können aber nicht davor schützen, dass Inline-Styles böswillig den Nutzer optisch täuschen oder etwas vorgaukeln.

Falls man mittels eines Sanitizers HTML-Input säubert, will man üblichweise jegliches JavaScript und CSS herausfiltern und evtl. auch nur eine bestimmte Auswahl an HTML-Elementen und Attributen zulassen.

Eine CSP kann und sollte hier als zusätzliche Sicherheitsebene zum Einsatz kommen.

Gibt es hierzu irgendwo Erläuterungen, die das Problem verständlich skizzieren? Gibt es ggfs. auch eine Web-Seite, die veranschaulicht, wie sich die unterschiedlichen CSP setting für style-src auf die Darstellung auswirken?

Im Grunde ist es ganz einfach: Wenn man Inline-Styles verwendet, diese aber von der CSP verboten werden, werden sie schlicht ignoriert (außer bei einer Report-Only-CSP).

Mir ist das Thema Inline-Styles und die Problematik bekannt, aber ich würde gern dazu eine Demo geben. (... ich könnte natürlich auch am eigenen Server so etwas basteln, aber das kostet zuviel Zeit).

Falls du PHP zur Verfügung hast, kannst du dir in 2 Minuten so etwas basteln:

<?php
header('Content-Security-Policy: …');
?><!doctype html>
<!-- HTML mit Inline-Styles deiner Wahl -->

Will man eine produktiv betriebene Website auf die Auswirkungen einer CSP untersuchen, würde ich diese dort als Report-Only setzen und dann einen Reporting-Dienst (z. B. uriports.com – Die Reports kann man zwar auch selbst einsammeln und aufbereiten, aber das sehe ich nicht als sinnvoll an.) zur Auswertung verwenden. Basierend auf den Resultaten kann man dann ggf. CSP und / oder Website anpassen und die CSP dann scharf schalten, wenn eine gewisse Zeit lang keine Reports eingingen.

Ich kann auch die anderen von uriports unterstützten Reporting-Möglichkeiten nur empfehlen: Mit denen findet man häufig noch andere Probleme, mit denen man gar nicht gerechnet hat...

Viele Grüße
Julius

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen