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.