Signatur
Beschreibung
Die Eigenschaft password gehört zu den URL-Zerlegungs-Eigenschaften von HTMLAnchorElement. Sie liefert den Teil einer URL nach dem Doppelpunkt im Benutzerinfo-Abschnitt, also z. B. geheim aus https://anna:geheim@example.com/. Ist kein Passwort enthalten, ist der Wert ein leerer String.
Die Eigenschaft ist les- und schreibbar. Wird ein neuer Wert zugewiesen, aktualisiert der Browser das href-Attribut automatisch; Sonderzeichen werden dabei prozentkodiert. Das Setzen hat keine Wirkung, wenn die URL keinen Host hat (z. B. bei mailto:- oder file:-URLs) oder das href ungültig ist.
In der Praxis nutzt man password vor allem, um Links zu prüfen oder zu bereinigen, etwa um versehentlich eingebettete Zugangsdaten vor dem Anzeigen oder Weitergeben einer URL zu entfernen. Für das Bauen neuer URLs ist das URL-Objekt meist die bessere Wahl, da es dieselbe Schnittstelle ohne DOM-Element bietet.
Rückgabewert
string erwartet.Beispiele
Passwort aus einem Link auslesen
const link = document.createElement('a');
link.href = 'https://anna:geheim123@ftp.example.com/dateien/';
console.log(link.username);
console.log(link.password);
Passwort setzen – Sonderzeichen werden kodiert
const link = document.createElement('a');
link.href = 'https://anna@example.com/login';
link.password = 'p@ss wort';
console.log(link.href);
Zugangsdaten aus allen Links der Seite entfernen
const bereinigeLinks = () => {
document.querySelectorAll('a[href]').forEach((a) => {
if (a.password || a.username) {
console.warn('Zugangsdaten entfernt aus:', a.hostname);
a.password = '';
a.username = '';
}
});
};
bereinigeLinks();
Wirkungslos bei URLs ohne Host
const mail = document.createElement('a');
mail.href = 'mailto:info@example.com';
mail.password = 'test';
console.log(mail.password === '');
console.log(mail.href);
// Wichtig · Fallstricke
- Sicherheit: Zugangsdaten in URLs sind im Klartext sichtbar: im DOM, im Seitenquelltext, in Browser-Verlauf, Server-Logs und unter Umständen im
Referer-Header. Verwende sie nie für echte Authentifizierung im Frontend. - Moderne Browser blockieren oder warnen bei Navigation zu URLs mit eingebetteten Zugangsdaten (Chrome blockiert z. B. Subressourcen mit
user:pass@). Der Wert ist perpasswordaber weiterhin auslesbar. - Der zurückgegebene Wert ist prozentkodiert; zum Anzeigen ggf.
decodeURIComponent()verwenden. - Ist
hrefrelativ, wird es gegen die Basis-URL des Dokuments aufgelöst. Enthält diese kein Passwort, ist das Ergebnis ein leerer String. - Kompatibilität: in allen aktuellen Browsern unterstützt; entsprechend auch bei
HTMLAreaElement.passwordundURL.prototype.passwordverfügbar.