0 Tage Serie
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.