Funktionsweise und Sicherheit

Der Kurskalender meldet Ereignisse an die einbettende Webseite — welche Domänen sie empfangen dürfen und wie Sie sie in Ihrem Listener prüfen.

Funktionsweise:

Sicherheit:

So funktioniert die Event-Bridge

Der Kurskalender wird als eingebetteter Inhalt (iFrame) in Ihre Webseite eingefügt. Aus Sicherheitsgründen sind eingebettete Inhalte und die umgebende Webseite im Browser voneinander getrennt: Ihre Webseite kann nicht einfach mitlesen, was im Kurskalender passiert.

Die Event-Bridge stellt für diesen Zweck einen definierten Weg bereit. Erreicht ein Besucher einen der festgelegten Schritte, sendet der Kurskalender eine Nachricht an das umgebende Fenster Ihrer Webseite – das sogenannte Elternfenster (parent frame). Dieses Ereignis (event) enthält strukturierte Zusatzdaten, etwa Kurstitel, Preis oder Zahlungsart.

In der Praxis bedeutet das: Auf Ihrer Webseite hinterlegen Sie ein JavaScript, das auf diese Ereignisse hört. Sobald ein Ereignis eintrifft, rufen Sie darin Ihr eigenes Conversion-Skript auf.

Bewusst ist in SEMCO kein festes Tracking-System eingebaut. Stattdessen erhalten Sie die Information und entscheiden selbst, was damit geschieht. Typische Anwendungen sind:

  • Google Ads bzw. Google Conversion Tracking
  • Facebook Pixel
  • ein Analyse-System (intern oder extern)
  • beliebige eigene Skripte, etwa zum Auslösen einer internen Statistik

Der Vorteil dieses Ansatzes: Sie sind nicht auf die von SEMCO unterstützten Tracking-Anbieter beschränkt und behalten die vollständige Kontrolle darüber, welche Daten Ihr Tracking-Anbieter erhält und zu welchem Zeitpunkt.

Technischer Hintergrund

Die Event-Bridge nutzt den Standard-Browsermechanismus postMessage(), mit dem eingebettete Inhalte sicher mit der umgebenden Seite kommunizieren können. Es ist keine zusätzliche Software und keine Freigabe im Browser erforderlich; der Mechanismus wird von allen aktuellen Browsern unterstützt.

Weiterführende technische Details zu postMessage() finden Sie in der MDN-Dokumentation.

Zugelassene Domänen in SEMCO

Der SEMCO-Kurskalender darf nur auf Webseiten eingebettet werden, deren Domänen von SEMCO zugelassen sind. Durchgesetzt wird das über den Content-Security-Policy-Header (CSP) des Kurskalenders, insbesondere über die Direktive frame-ancestors. Diese Domänen hinterlegt unser Support in Absprache mit Ihnen bei der Einrichtung.

Die Event-Bridge prüft dieselbe Liste: Ereignisse gehen ausschließlich an das einbettende Fenster, und nur dann, wenn dessen Domäne zugelassen ist. Eine fremde Webseite kann Ihren Kurskalender also weder anzeigen noch Ereignisse von ihm empfangen.

Zwei Domänen spielen hier eine Rolle:

  • Die Zulassungsliste in SEMCO enthält die Domäne Ihrer Webseite, also der Seite, die den Kurskalender einbettet.
  • event.origin ist dagegen die Domäne des Kurskalenders, also der Seite, die nach Weiterleitungen tatsächlich geladen ist. Sie kann vom src-Attribut des iFrame abweichen, etwa von http zu https oder mit und ohne www. Der Kurskalender läuft meist unter einer Subdomäne Ihre Webseite.

Als Origin bezeichnet man die Kombination aus Protokoll und Domäne, also beispielsweise https://www.ihre-domain.de.

Hinweis:

Möchten Sie den Kurskalender auf einer weiteren Domäne einbetten, etwa auf einem Test- oder Staging-System, wenden Sie sich an unseren Support, damit die Domäne ergänzt wird. Ohne diesen Eintrag empfängt die Seite keine Ereignisse.

Prüfungen auf Ihrer Webseite

Ein Empfänger für Nachrichten (Listener) empfängt grundsätzlich Nachrichten von jedem Fenster – also auch von anderen eingebetteten Inhalten oder von Skripten Dritter. Prüfen Sie deshalb in Ihrem Listener immer diese drei Punkte:

  1. event.origin gegen die von Ihnen erwartete Domäne des Kurskalenders. Diese Prüfung ist zwingend erforderlich. Lesen Sie diesen Wert nicht aus dem src-Attribut des iFrame ab. Verlässlich ist nur die Domäne, die das Test-Skript ausgibt.
  2. event_name auf das Präfix semco_. So schließen Sie Nachrichten anderer Systeme aus, die zufällig dieselbe Struktur verwenden.
  3. Die Hauptversion des Schemas im Feld version, damit Sie nur Ereignisse verarbeiten, deren Aufbau Sie kennen.

Alle drei Prüfungen sind im Grundgerüst unter Tracking-Werkzeuge anbinden bereits enthalten.