2009-07-24 7 views
1

Je dispose d'une zone réservé aux membres sur mon site où les utilisateurs peuvent se connecter et afficher du contenu en continu Windows Media.Protection d'un fichier ASX en PHP

J'ai créé un script PHP pour servir le fichier ASX mais je ne peux pas le valider avec les informations de session. Je pense que c'est parce que le WMP fait la demande et pas une page php. Quelqu'un peut-il suggérer une façon élégante de protéger les fichiers ASX?

Répondre

0

Ce que je voudrais faire est intégrer l'ID de session PHP dans la demande .asx. Normalement, cet identifiant est stocké dans un cookie et transmis à PHP à chaque requête de page. Dans ce cas, WMP n'envoie pas de cookie, donc vous n'avez aucun moyen de savoir si la requête est authentifiée ou non.

Lorsque vous exportez le lien de téléchargement pour le fichier ASX, amure sur l'identifiant de session en tant que variable GET:

$download_link = "http://myserver.com/download_asx_file.php?" 
$download_link .= "f=$file_id&"; 
$download_link .= htmlspecialchars(SID); 

Maintenant, lorsque vous appelez session_start() en haut de download_asx_file.php il faut trouver et charger correctement votre session et vous permettent de vous authentifier normalement.

Remarque: La constante SID est évaluée à PHPSESSID=12345678 (ou quelle que soit la session de l'utilisateur se trouve être)

0

Vous pouvez essayer ceci:

//$user->isAuthenticated is only for ilustration, use whatever method you 
//use to check if the user is authenticated 
if($user->isAuthenticated()) { 
     $asx = file_get_contents("/path/to/my/file.asx"); 
     header("Content-type: video/x-ms-asf"); 
     echo $asx; 
} else { 
     //Tell the user that he can't view this asx 
} 
Questions connexes