まず、リファラーを偽装するのは非常に簡単です。この情報はユーザーのブラウザーに保存されるため、ユーザーは単にサーバーに telnet で接続し、ドメインに一致する独自のリファラーを提供できます。
あなたが試すことができるいくつかのこと:
まず、より安全ですが、スプーフィング可能です。mod_rewrite は、Cookie をチェックする機能を提供します。できることは、ユーザーが不明瞭なデータを含む Web サイトにアクセスしたときに Cookie を設定することです。次に、RerwriteCond を次のように変更できます。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_COOKIE} obscurename=obscurevalue [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(asx¦ASX)$ http://www.yourdomain.com/images/leech.gif [R,L]
もう 1 つの優れた手法は、PHP と MIME タイプを使用することです。これがストリーミング コンテンツをどの程度サポートするかはわかりませんが、うまくいくと思います。できることは、すべての動画リンクが .php ファイルを指すようにすることです (クエリ文字列によって、どの動画が選択されたかが決まります)。次に、ユーザーがこのリンクにアクセスしようとすると、次のようにします。
<?php
// You could also check some sort of session variable
// that is set when the user visits another part of your
// site
if(!isLoggedIn()){
header("Location: errorPage.htm");
exit;
}else{
// Get the name of the file specified
$file = get_file_name($_GET['fileID']);
// Specify the proper mime-type for the data you're sending
// (this may have to change, depending on your situation)
header("Content-type: video/vnd.rn-realvideo");
// Read the file and output it to the browser
readfile($file);
}
?>
私が読んだところによると、ほとんどのサーバーはどの MIME タイプがストリーミング MIME タイプであるかを認識しているため、ブラウザはストリーミング ファイルを適切に処理する方法を理解できるはずです。