javascript / beginner
Snippet
Bereinigen externer Hyperlinks zur Verhinderung von XSS in Anchor-Tags
Das direkte Rendern von benutzerdefinierten URLs in href-Attributen kann Cross-Site-Scripting (XSS) über javascript:-Schemata ermöglichen. Die Validierung des Protokolls und rel-Attribute schützen die Anwendung.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
function SafeLink({ targetUrl, label }) {const isSafe = /^https?:\/\//i.test(targetUrl);const safeHref = isSafe ? targetUrl : '#';return (<a href={safeHref} rel="noopener noreferrer" target="_blank">{label}</a>);}
react
Erklärung
1
const isSafe = /^https?:\/\//i.test(targetUrl);
Validiert, dass die angegebene URL explizit mit http:// oder https:// beginnt.
2
const safeHref = isSafe ? targetUrl : '#';
Weicht auf einen sicheren Hash-Platzhalter aus, falls die URL unsichere Protokolle enthält.
3
rel="noopener noreferrer"
Verhindert Reverse-Tabnabbing und isoliert den Window-Kontext bei externen Links.