2011-08-19 51 views
0

我想將請求文件'/File.mp3'的客戶端重定向到驗證用戶的PHP腳本。然後,如果腳本響應「真」,我想重定向客戶端下載文件。將.mp3文件重定向到PHP腳本並返回

我該如何使用PHP和Apache來做到這一點?

回答

3
RewriteEngine on 

RewriteRule ^(.*).mp3$ /mp3_file.php?file=$1 

請注意,這是很容易破解:

http://localhost//etc/passwd%00.mp3 
http://localhost/config.php%00.mp3 

AFAIK,您可以使用以下安全加載文件:

$data = file_get_contents('your_mp3_dir/'.basename(str_replace("\0", "", $_REQUEST['file'])).'.mp3'); 
+0

任何方式來阻止這個'黑客'? – Ron

+0

首先,PHP的安全模式會阻止這個,但你可能不會使用它=)。除此之外,它取決於你加載實際文件的方式。我會在我的文章中舉一個安全的例子。 – elslooo

+0

抱歉讓你瘋了,但是當我正在訪問mp3文件(實際上是RewriteEngine) - 沒有任何反應(沒有打開/保存對話框)。我應該添加什麼代碼才能使其工作?我以前的代碼非常簡單。 – Ron

相關問題