Ressourcen · 116

postMessage: Ursprung, Fenster und Befehl prüfen

Einen Nachrichtenvertrag für iframe oder Popup festlegen, der unerwartete Absender und Daten abweist.

Aktualisiert · 2 min

Wozu dieser Leitfaden beiträgt

  • Teilnehmer und Typen festlegen
  • Vor jeder Wirkung validieren
  • Navigation und unerwartete Nachrichten testen

Kurzcheck

  • Vertrag für Ursprung, Fenster, Typ und minimale Daten.
  • Prüffolge und Ablehnung ohne Geschäftswirkung.
  • Ablehnungsmatrix und Listener-Bereinigung.

Schritt-für-Schritt-Anleitung

  1. 1

    Teilnehmer und Typen festlegen

    Erfasse exakte Ursprünge, erwartete Fensterreferenz und Nachrichtentypen. Nutze ein genaues targetOrigin für sensible Daten. Ein Ursprung umfasst Schema, Host und Port; eine Teilzeichenfolgensuche im Domainnamen validiert keinen Teilnehmer.

    Vertrag für Ursprung, Fenster, Typ und minimale Daten.

  2. 2

    Vor jeder Wirkung validieren

    Vergleiche event.origin und für diese Fensterintegration event.source mit der erwarteten Referenz. Prüfe Schema, zulässige Werte und Vorgangszustand. Behandle Inhalt als Daten, ohne eval oder HTML-Einfügung. Ein erlaubter Ursprung ersetzt keine serverseitige Berechtigungsprüfung.

    Prüffolge und Ablehnung ohne Geschäftswirkung.

  3. 3

    Navigation und unerwartete Nachrichten testen

    Teste ähnliche Domains, andere Ports, ein anderes Fenster desselben Ursprungs, ungültige Felder und Nachrichten nach Abschluss. Entferne unbenötigte Listener und entwerte abgeschlossene Austausche. Antworten verwenden einen zuvor erlaubten Ursprung, auch nach Fensternavigation.

    Ablehnungsmatrix und Listener-Bereinigung.

Nachvollziehbarer Abnahmefall

Fiktives Beispiel: Diese Daten beschreiben keine Kunden oder beobachteten Ergebnisse.

Falldaten anzeigen
{
    "allowed_origin": "https://widget.example",
    "observed_origin": "https://widget.example",
    "expected_window": "active_iframe",
    "observed_window": "another_window",
    "payload_schema_valid": true,
    "expected": "reject_without_effect"
}

Erwartete Entscheidung

Fiktives Beispiel: https://widget.example ist erlaubt, aber event.source verweist auf ein anderes Fenster. Der Vertrag verlangt das aktive iframe-Fenster: Nachricht ohne Befehl ablehnen.

MDN — Window.postMessage

Ihr Abnahmeprotokoll

Erfassen Sie Beobachtungen zu den Kriterien dieses Leitfadens. Ein Protokoll ist keine Zertifizierung.

Keine automatische Speicherung. Vor dem Verlassen exportieren.

Managementindikatoren

IndikatorWas es misstErste Aktion
Abgewiesene unerwartete FälleNegative Fälle ohne Wirkung abgewiesen / ausgeführte negative FälleUrsprung, Fenster und Zustand dokumentieren
Abgeschlossene erlaubte AustauscheAbgeschlossene Sollszenarien / getestete SollszenarienEmpfang von bestätigter Wirkung trennen

Häufige Fallstricke

    Häufig gestellte Fragen

    Genügt die Prüfung von event.origin?

    Nein. Prüfe auch Fenster, Datenstruktur und Zustand. Der Server muss die Rechte für die Aktion prüfen.

    Offizielle Referenzen

    Die Referenzen unterstützen die Methode. Passen Sie die Prüfungen an Ihren Kontext an; sie stellen keine Zertifizierung dar. Originalreferenztitel und Quelldokumente können in einer anderen Sprache verfasst sein.

    Referenzen geprüft am .