Start · Sprachen · JavaScript · Referenz · HTMLAnchorElement.password

HTMLAnchorElement.password

Eigenschaft

Liest oder setzt die Passwort-Komponente der URL im <code>href</code>-Attribut eines <code>&lt;a&gt;</code>-Elements.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLAnchorElement.password

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

Typ
string
Beschreibung
Das (prozentkodierte) Passwort aus der URL oder ein leerer String, wenn keines vorhanden ist. Beim Setzen wird ein 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);
anna geheim123

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);
https://anna:p%40ss%20wort@example.com/login

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();
Zugangsdaten entfernt aus: ftp.example.com

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);
true mailto:info@example.com

// 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 per password aber weiterhin auslesbar.
  • Der zurückgegebene Wert ist prozentkodiert; zum Anzeigen ggf. decodeURIComponent() verwenden.
  • Ist href relativ, 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.password und URL.prototype.password verfügbar.