私のサイトには、ユーザーがログインしてWindows Mediaストリーミングコンテンツを見ることができるメンバー専用エリアがあります。PHPでASXファイルを保護する
私はASXファイルを提供するためにPHPスクリプトを作成しましたが、これをセッション情報で検証することはできません。私はこれがWMPがPHPページではなく要求を出しているからだと思います。
誰もがASXファイルを保護するためのエレガントな方法を提案できますか?
私のサイトには、ユーザーがログインしてWindows Mediaストリーミングコンテンツを見ることができるメンバー専用エリアがあります。PHPでASXファイルを保護する
私はASXファイルを提供するためにPHPスクリプトを作成しましたが、これをセッション情報で検証することはできません。私はこれがWMPがPHPページではなく要求を出しているからだと思います。
誰もがASXファイルを保護するためのエレガントな方法を提案できますか?
は.ASX要求にPHPのセッションIDを組み込むです。通常、この識別子はクッキーに格納され、各ページリクエストでPHPに渡されます。この場合、WMPはクッキーを送信していないので、要求が認証されているかどうかを知る方法がありません。あなたがdownload_asx_file.php
の上部にsession_start()
を呼び出すとき
$download_link = "http://myserver.com/download_asx_file.php?"
$download_link .= "f=$file_id&";
$download_link .= htmlspecialchars(SID);
今、それは正しくセッションを見つけ、ロードする必要があります:あなたの出力ダウンロードASXファイルのリンク、GET変数としてセッション識別子のタックが
、通常どおりに認証することができます。
注:SID定数をPHPSESSID=12345678
に評価さ(またはそのユーザーのセッションがあることを起こるものは何でも)され
あなたがこの試すことができます:私はどうなるのか
//$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
}