Ce guide est découpée en plusieurs parties, chacune présentant une fonctionnalité de notre futur service

  1. installer le serveur Web
  2. installer le module de streaming
  3. utiliser Flowplayer pour lire les vidéos
  4. sécuriser les urls
  5. gérer la bande passante
  6. suivre la santé de notre serveur



Quatrième partie : sécuriser les url
Pour cette quatrième partie, nous allons nous concentrer sur la sécurisation des url des vidéos. Le but n’est pas d’empêcher tout téléchargement illégal de nos vidéos, mais plutôt d’éviter le hotlinking.
En effet, si votre site rencontre un minimum de succès, la question de la bande passante va vite venir se poser. Si l’on néglige cet aspect on peut vite se retrouver en conflit avec son hébergeur; nous devons donc nous assurer que notre serveur de streaming ne sera pas utilisé par de vils malandrins.

4.1 installer mod_auth_token
mod_auth_token nous permet de générer des URL sécurisées, valides pendant un certain laps de temps, permettant d’accéder à des ressources statiques (du type http://mondomaine.com/a8z13sdzd6f843×1cs8d6zfzd13ze8r/mavideo.mp4).
Cette URL est générée au niveau du code Php de notre site puis analysée par le serveur (lorsqu’il reçoit la requête GET) qui détermine si elle est valide ou non.
Nous allons donc télécharger et compiler ce formidable module apache.

cd ~
wget http://mod-auth-token.googlecode.com/files/mod_auth_token-1.0.5.tar.gz
tar -xvf mod_auth_token-1.0.5.tar.gz
cd mod_auth_token-1.0.5
apxs2 -c -i mod_auth_token.c



4.2 configurer le module
Pour paramétrer la façon dont le module va fonctionner nous rajoutons ça dans la conf apache:

nano /etc/apache2/httpd.conf

ajouter les lignes suivantes:

LoadModule auth_token_module /usr/lib/apache2/modules/mod_auth_token.so

    <Location /protected/>
      AuthTokenSecret       "pouet"
      AuthTokenPrefix       /protected/
      AuthTokenTimeout      60
    </Location>

Nous créons donc une directive pour le répertoire contenant nos fichiers (ici le répertoire s’appelle « protected ») dans laquelle nous spécifions:

  • AuthTokenSecret – un mot « secret » qui est la clé utilisée par le module pour générer l’url, mettez ici ce que vous voulez.
  • AuthTokenPrefix – le nom du répertoire contenant nos fichiers
  • AuthTokenTimeout – la durée de validité de l’url (en secondes)



4.3 générer l’url à partir de php
Voici un exemple de code php associé à cette config, qui permettra de générer une URL correctement interprétée par le serveur:

<?php
  $secret = "pouet";              /* pareil que AuthTokenSecret */
  $uri_prefix = "/protected/";   /* pareil que AuthTokenPrefix */
  $f = "/mavideo.mp4";           /* nom du fichier auquel on veut accéder */

  /* timestamp actuel */
  $t = time();

  $t_hex = sprintf("%08x", $t);
  $m = md5($secret.$f.$t_hex);
  /* génère le lien */
  printf('<a href="http://mondomaine.com%s%s/%s%s">%s</a>',$uri_prefix, $m, $t_hex, $f, $f);

?>

Nous obtenons une URL valide pendant 60 secondes.
Ce système couplé à une base de données nous permettra de sécuriser les accès à l’ensemble de nos videos.

Dans la prochaine partie nous verrons comment limiter la bande passante par client.

Une réponse à  “Créer un serveur de streaming vidéos H.264, partie 4 – sécuriser les URL”

  1. Julien

    Très bon tuto, j’ai enfin trouvé une alternative à lighthttpd !

    Avez-vous prévu de terminer le point 5 et éventuellement le 6 ?

Laissez un commentaire

Screenworks is powered by WordPress.
flux rss