Weinblog, Reiseblog & Digitalisierung

Content-Security-Policy (CSP): wie lasse ich generierte SVG Grafiken (Base64 Images) data:image/svg+xml zu?

Wer sich seine Content-Security-Policy (CSP) eingerichtet hat, bekommt keine SVG generierte Grafiken auf seinen Seiten angezeigt. Die Funktion wird in einigen CSS zum Beispiel zur Generierung des bekannten Hamburger-Menü-Icons verwendet.

Aus so einem Code

background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")

wird so eine Grafik

Menu

Das ist praktisch und kann sehr flexibel zum Einsatz kommen.

Dem steht jedoch eine sichere Content-Security-Policy entgegen

Das ist solche eine Beispiel-Richtlinie:


<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; frame-ancestors 'none'; child-src 'none';">

Die img-src Directive lässt data: nicht als Quelle zu. Man kann data: in seiner CSP zulassen, zum Beispiel img-src https://* data:;, dies gilt jedoch als unsicher und wird nicht empfohlen. Links dazu:

Stay blogged. 8-)

Dein Matthias Düsi

Kommentare