2013-03-27 176 views
0

我在我的網站上設置了播放mp3的MP3播放器。目前,用戶可以輕鬆查看來源,搜索「mp3」並在我的網站上下載所有音樂。我知道完全阻止確定的用戶下載音樂幾乎是不可能的,但我想讓普通用戶更難。有什麼辦法可以混淆到mp3的鏈接?防止輕鬆下載MP3播放器上播放的MP3?

相關網站:http://boyceavenue.com/music

+1

將它們保存在文檔根目錄之外並通過腳本提供它們,例如, 'getmp3.php?ID = XXX'。只要XXX不是遞增整數,他們就必須更努力地獲得「有效」ID的列表 – 2013-03-27 21:55:27

回答

0

您沒有指定要使用的語言。爲了擴展Marc B寫的內容,我建議使用PHP http_send_file命令以及文件的校驗和。

要發送的文件,使用以下命令:

$filename = "/absolute/or/relative/path/to/file.ext"; 
$mime_type = "audio/mpeg"; // See note below 
http_send_content_disposition($filename, true); 
http_send_content_type($mime_type); 
http_throttle(0.1, 2048); 
http_send_file($filename); 

如果您服務了多種類型的使用PHP 5.3.0或更高版本的文件,你可以決定的MIME類型是這樣的:

$filename = "/absolute/or/relative/path/to/file.ext"; 
$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime_type = finfo_file($finfo, $filename); 
finfo_close($finfo); 

計算校驗和很簡單。只需使用md5_file即可。

那麼,你可以用校驗和做什麼?

那麼,你可以創建一個相互交叉引用的校驗和和文件名數組。也就是說,你在文件的鏈接中加入了校驗和,但是有一個小程序來查找校驗和併發送mp3文件。你也可以在數據庫中做到這一點。你也可以做一些應用程序,根據它們的校驗和將文件存儲在目錄結構中(music/3/3a/song.mp3,校驗和爲3a62f6或其他)。

如果您不關心被損壞的文件名,您可以使用文件名的校驗和保存文件。這可以在上傳時(如果您的文件正在上傳)或通過批處理腳本(使用CLI)完成。

你應該做的另一件事是把一個默認文檔(index.php或其他)告訴別人看。也禁用瀏覽目錄。如果只有極少數人需要訪問,則還可以在目錄上輸入密碼,因此需要登錄才能訪問這些文件。