Das SVG («Scalable Vector Graphic») könnte man wohl in gewisser Weise als Opfer von Cyber-Rassismus bezeichnen, denn es wird diesem Dateiformat gemeinhin unterstellt, das WWW «unsicher» zu machen. Darum möchte ich – als weltoffener Digital Native – für ein und alle Mal mit den «alternativen Fakten» aufräumen und ein klares Statement abgeben: Nicht alle SVGs sind Kriminelle.

Die «Natur» des SVGs

Wie bei fundierter Aufklärungsarbeit üblich, beginne ich mit den Grundlagen. .svg ist wie .jpg, .png und .gif ein Grafikformat, welches jeder Browser darstellen kann. Im Unterschied zu den eben genannten Formaten basieren SVGs jedoch auf Vektoren und nicht auf Pixeln. Deshalb sind sie bei Frontend-Entwicklern so beliebt – in jeglicher Ausführung auf jedem Display werden sie immer gestochen scharf dargestellt und trumpfen erst noch mit einer sensationell kleinen Dateigrösse auf.
Vergleich PNG vs SVG
Zoomen Sie einmal in dieses Bild hinein und Sie werden sofort sehen, warum SVGs so «cool» sind – das SVG ist nicht nur bereits bei einer Grösse von 200 x 200 px lediglich halb so schwer wie das transparente PNG, sondern bleibt auch zu jedem Zeitpunkt gestochen scharf.

Der Name ist jedoch irreführend (wie z.B. bei «Indianern») – eine «Scalable Vector Graphic» ist nicht eine reine Grafikdatei wie ein .jpg oder .png, sondern basiert auf der Sprache XML. Das bedeutet, dass SVGs als Text in den Quellcode geschrieben werden können und im Browser als Bild angezeigt werden. Der dazu benötigte Code erinnert an HTML und wie auch HTML kann SVG-Code mit CSS und JavaScript ergänzt werden. Das bedeutet ganz konkret, dass ein SVG neben Grafik-Vektoren – genau wie ein .html-File auch – JavaScript enthalten und somit interaktiv sein kann.

Die Infiltration des Bösen

Aha – JavaScript! Da haben wir doch schon den Vorboten des Untergangs. Laden wir also irgendwo ein x-beliebiges SVG aus dem Internet, haben wir zunächst einmal keine Ahnung, was genau in diesem SVG abgeht. Einfach gesagt, können wir das SVG als roten Kreis sehen, im Hintergrund lädt aber ein JavaScript-Schnipsel gerade einen Virus auf unseren Rechner.

Der Aufruf zur Toleranz

«Dann bauen wir doch eine Mauer um unseren Server und lassen nur noch .jpgs, .pngs und mit Spezial-Visum vielleicht noch .gifs rein!», könnte z. B. ein verängstigter Soziopath denken. Die Zauberformel ist aber viel einfacher: am besten zuerst das Gegenüber kennenlernen, bevor ein (Vor-)Urteil gefällt wird. Der einfachste Weg, sicher zu sein, dass das SVG keinen Schadcode enthält, ist es selber zu erstellen. SVGs aus vertrauenswürdigen Quellen in Websites einzubinden, ist nicht gefährlicher als HTML zu verwenden.

Faust-Regel:

SVGs sind nur potentiell gefährlich, wenn ich der Quelle nicht vertrauen kann.

Soll ich dieses SVG verwenden?

SVGs in Content Management Systemen

Da wir uns jetzt nicht mehr vor SVGs fürchten, fragen wir uns, warum es denn so umständlich ist, SVGs mit gewissen Content Management Systemen (CMS) zu handhaben. Dies kommt vor allem mit dem Hintergedanken daher, dass es auf einer Website verschiedene Nutzer gibt, die sich ins Frontend einloggen und z.B. Bilder hochladen können (z.B. Foren oder Facebook). Diese Nutzer müssen selbstverständlich nicht zwingend böse gesinnt sein, aber verstehen unter Umständen die Definition von "vertrauenswürdigen Quellen" anders («mein bester Freund hat mir das Bild geschickt»). Die Folgen wären natürlich verheerend, käme ein Schadcode-verseuchtes SVG dadurch ins System – und selbstverständlich hätte dann das CMS den Ruf "unsicher" zu sein. Es ist also eine Vorsichtsmassnahme der CMS-Entwickler, SVGs by default nicht zu erlauben. Wenn man aber weiss, was man tut, spricht nichts dagegen, diese Scalable Vector Graphics zu verwenden.

PS: Bei dieser Gelegenheit möchte ich noch beantragen, den politisch inkorrekten Ausdruck «Scalable Vector Graphic» durch den neutraleren Ausdruck «paSVG: possibly augmented Scalable Vector Graphic» zu ersetzen. Schliesslich sagen wir heute ja auch «Native Americans» und nicht mehr «Indianer». Hokahe!