0 Tage Serie
javascript / beginner
Snippet

Verhindern von Script-Injection bei dynamischen Link-Zielen

Das direkte Binden von benutzerdefinierten Zeichenketten an href-Attribute kann Cross-Site-Scripting (XSS) über das 'javascript:'-URI-Schema ermöglichen. Die Validierung des Protokolls in einer Computed Property stellt sicher, dass nur sichere http- und https-Protokolle an das DOM übergeben werden.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
import { ref, computed } from 'vue';
const userProvidedUrl = ref('javascript:alert("xss")');
const sanitizedUrl = computed(() => {
const target = userProvidedUrl.value.trim();
const isSafeProtocol = target.startsWith('http://') || target.startsWith('https://');
return isSafeProtocol ? target : '#';
});
vue
Erklärung
1
const userProvidedUrl = ref('javascript:alert("xss")');
Hält potenziell gefährliche, nicht vertrauenswürdige Benutzereingaben.
2
const isSafeProtocol = target.startsWith('http://') || target.startsWith('https://');
Überprüft, ob der Ziel-Link ausschließlich erlaubte Webprotokolle nutzt.
3
return isSafeProtocol ? target : '#';
Gibt die sichere URL zurück oder weicht auf '#' aus, um bösartige Skriptausführung zu verhindern.