Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Warnung: Die href.baseVal Eigenschaft repräsentiert die URL eines externen Skripts, das in das SVG-Skript-Element geladen wird. Solche APIs sind als Injection Sinks bekannt und stellen potenziell einen Vektor für Cross-Site-Scripting (XSS)-Angriffe dar.
Sie können dieses Risiko mindern, indem Sie eine Content Security Policy (CSP) verwenden, die die Orte einschränkt, von denen Skripts geladen werden können. Verwenden Sie außerdem immer TrustedScriptURL-Objekte anstelle von Zeichenfolgen und erzwingen Sie vertrauenswürdige Typen. Siehe Sicherheitsüberlegungen für weitere Informationen.
Die href-Eigenschaft der SVGScriptElement Schnittstelle gibt das Attribut href oder xlink:href des angegebenen <script>-Elements wieder.
Ein SVGAnimatedString-Objekt.
Die href-Eigenschaft gibt das Attribut href oder xlink:href des angegebenen <script>-Elements wieder. Das Attribut kann geändert werden, indem href.baseVal festgelegt wird (href.animVal ist schreibgeschützt und spiegelt den Wert von baseVal wider).
Die href.baseVal-Eigenschaft wird verwendet, um externe Skripte zu laden und auszuführen. Wenn das SVG inline deklariert ist, wird das abgerufene Skript im Kontext der aktuellen Seite ausgeführt und kann daher alles tun, was Ihr eigener Website-Code tun kann (selbst wenn die URL nicht aus derselben Herkunft wie Ihre Site stammt). Wenn die Eingabe von einem Benutzer bereitgestellt wird, ist dies ein möglicher Vektor für Cross-Site-Scripting (XSS)-Angriffe.
Es ist äußerst riskant, willkürliche URLs von nicht vertrauenswürdigen Ursprüngen zu akzeptieren und auszuführen. Eine Website sollte kontrollieren, welche Skripte ausgeführt werden dürfen, indem sie eine Content Security Policy (CSP) mit der script-src-Direktive (oder einem Rückfall definiert in default-src) verwendet. Dies kann Skripte auf diejenigen vom aktuellen Ursprung oder einer spezifischen Menge von Ursprüngen oder sogar bestimmten Dateien beschränken.
Wenn Sie diese Eigenschaft verwenden und vertrauenswürdige Typen erzwingen (unter Verwendung der require-trusted-types-for CSP-Direktive), müssen Sie immer TrustedScriptURL-Objekte anstelle von Zeichenfolgen zuweisen. Dies stellt sicher, dass die Eingabe durch eine Transformationsfunktion geleitet wird, die die Möglichkeit hat, die URL abzulehnen oder zu ändern, bevor die Ressource abgerufen wird.
Um das Risiko von XSS zu mindern, sollten wir immer TrustedScriptURL-Instanzen der baseVal-Eigenschaft zuweisen. Wir müssen dies auch tun, wenn wir vertrauenswürdige Typen aus anderen Gründen erzwingen und wir einige Skriptquellen zulassen möchten, die erlaubt wurden (von CSP: script-src).
Vertrauenswürdige Typen werden noch nicht von allen Browsern unterstützt, daher definieren wir zuerst den trusted types tinyfill. Dies dient als transparenter Ersatz für die JavaScript-API für vertrauenswürdige Typen:
Als Nächstes erstellen wir eine TrustedTypePolicy, die eine createScriptURL()-Methode definiert, um Eingabezeichenfolgen in TrustedScriptURL-Instanzen zu transformieren.
Für den Zweck dieses Beispiels nehmen wir an, dass wir eine vordefinierte Menge von URLs im scriptAllowList Array zulassen möchten und alle anderen Skripte protokollieren.
Als Nächstes definieren wir ein ähnliches SVG und Skript-Element wie im vorherigen Beispiel und erhalten das Element, in das wir die URL injizieren wollen.
Dann verwenden wir das policy-Objekt, um ein trustedScriptURL-Objekt aus der potenziell unsicheren Eingabezeichenfolge zu erstellen und das Ergebnis der href.baseVal-Eigenschaft des Elements zuzuweisen:
| Scalable Vector Graphics (SVG) 2 # __svg__SVGURIReference__href |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.