Hierfür übergeben Sie dem Videoplayer per Parameter:

  • userid
  • time (Timestamp ab welchem Zeitpunkt der Zugriff erlaubt ist)
  • delay (Zeit in Sekunden wie lange der Stream ab dem time-Zeitpunkt abgerufen werden darf)
  • hash (berechnete Zeichenfolge, siehe folgende Beschreibung

Ihr Webserver und der Streamingserver verfügen über einen geheimen Schlüssel. Beispiel: „geheimwort123“

Ihr Webserver stellt aus den ersten drei Parametern die gewünschten Daten zusammen. Dann werden diese Daten inkl. dem geheimen Schlüssel zu einer Zeichenkette verbunden (String) und per MD5 zu einem Hash verarbeitet.

Der Streamingserver verfügt ebenfalls über diesen geheimen Schlüssel. Beim Videoabruf vom Player erhält dieser dann die userID, time, delay und den hash. Der Server verbindet die Parameter inklusive dem geheimen Schüssel, erzeugt hieraus ebenfalls einen Hash und vergleicht das Ergebnis mit dem übergebenen Hash. Es wird hierdurch sichergestellt, das alle Parameter korrekt übergeben und nicht manipuliert wurden (z.B. kann nicht die erlaubte Abrufzeit verlängert werden). Manipulationen sind nur mit erheblichem Aufwand denkbar.

  1. $checkString = $parameter_userID . $parameter_time . $parameter_delay . „geheimwort123“;
  2. $hash = md5($checkString);
  3. Diese Parameter werden per Parameter dem Videoplayer übergeben.
  4. Der Streamingserver fügt die Parameter inkl. dem geheimen Schüssel zusammen und berechnet draus ebenfalls den Hash. Diesen kann er nun mit dem übergebenen Hash-Parameter vergleichen und entscheidet, ob die Daten (z.B. ob und wie lange ein User zugucken darf) korrekt sind.

Standard für jede Webseite mit einer Kundendatenbank: Ihr System kennt Ihre Kunden und kann nach eigener Logik entscheiden, ob User X auf Videostreams zugreifen darf (oder auch nur auf spezielle Streamnamen, etc.). Beispielsweise, weil der User X dafür im Shop bezahlt hat oder weil er Mitarbeiter von Ihrem Unternehmen ist.

Bei dem Einsatz des Videoplayers auf Ihrer Webseite wird für den aktiven Kunden eine secureID erstellt. Dies ist ein erzeugte Kennung, Zufallszahl oder auch die Kundennummer des Nutzers. (Programmierung: bitte einen String aus Buchstaben und/oder Zahlen übergeben. Bitte vermeiden Sie Sonderzeichen und extrem lange IDs mit hunderten Zeichen.)

Falls es eine Zufallszahl ist, könnten diese für den aktiven Kunden zusammen mit der aktuellen Uhrzeit (Timestamp) in der Datenbank gespeichert werden.
Im folgenden Beispiel lautet diese ID „1234“.

Bei der Auslieferung der Webseite (z.B. das Zusammensetzen der Inhalte per PHP und Ausgabe an den Browser) wird im Videoplayercode auch diese secureID des aktuellen Kunden als Parameter eingefügt. D.h. der Player erhält in der URL den Parameter: id=1234

Der Player wird auf der Webseite (im Browser des Kunden) aufgerufen und übergibt beim Streamstart die angegebene ID als Parameter an den Streamingserver.

Der Streamingserver würde ohne aktive Sicherung an dieser Stelle den Videostream an den Player übertragen.

Durch die aktive Sicherung ruft er jedoch zuvor eine vereinbarte URL von Ihrer Webseite auf und gibt als Parameter die ID an. (Zusätzlich die IP-Adresse und den Streamnamen).

Beispiel:
http://www.ihreWebseite.de/sicherheitsabfrage.php?id=1234&userip=217.91.5.7&stream=meinstreamname

Ihr System gleicht die ID mit Ihrer Datenbank ab. Sie wissen, dass die ID z.B. 20 Sekunden alt ist und zu Kunde X gehört. Sie können nun prüfen, ob der Kunde zugreifen darf (z.B. ob er bezahlt hat). Ergänzend könnten Sie die Anzahl der Abrufe, etc. protokollieren.

Ihr System antwortet daraufhin an den Streamingserver, ob der User zugreifen darf oder nicht (bzw. wie viele Sekunden dieser Kunde zugreifen darf). Die Antwort erfolgt als einfache Zahl. Beispielsweise: 3600

Diese 3600 entsprechen 3600 Sekunden und somit eine Stunde die dieser Stream von diesem User abgerufen werden darf. Alternativ können Sie beliebige Zeit gewähren, wie beispielsweise 36000, so dass der User 10 Stunden am Stück und quasi zeitlich unlimitiert zugreifen kann. Geben Sie 0 zurück, darf der User NICHT zugreifen.

Da diese Abfrage bei jedem Aufruf von einem Video erfolgt (Dateistreaming / VOD wie auch Live), haben Sie es 100 % in der Hand, den gewünschten Zugriff für Ihre Kunden zu gewähren oder unerwünschten Zugriff abzulehnen.
Da diese Sicherheitsabfrage direkt zwischen dem Streamingserver und Ihrer Webseite erfolgt, hat der Kunde wie auch ein Hacker keine Möglichkeit hierauf Einfluss zu nehmen.

Eine technische Randnotiz für Programmierer: Wird der Stream von einem Player ausgelöst der per „HTML5 HLS“ den Stream abrufen möchte, erfolgt die Abfrage so wie oben in Punkt 4 angegeben.
Wird der Stream jedoch von einem Flashplayer abgerufen, erfolgt diese Abfrage zweimal! Ein erster Aufruf enthält die ID und die UserIP, aber nicht den Streamnamen. Wenn dieser Aufruf positiv bestätigt wird, erfolgt danach ein weiterer Aufruf, dann aber inkl. dem „stream=meinstreamname“ Parameter. Dies hängt dem RTMP-Protokoll zusammen.