0
我想將請求文件'/File.mp3'的客戶端重定向到驗證用戶的PHP腳本。然後,如果腳本響應「真」,我想重定向客戶端下載文件。將.mp3文件重定向到PHP腳本並返回
我該如何使用PHP和Apache來做到這一點?
我想將請求文件'/File.mp3'的客戶端重定向到驗證用戶的PHP腳本。然後,如果腳本響應「真」,我想重定向客戶端下載文件。將.mp3文件重定向到PHP腳本並返回
我該如何使用PHP和Apache來做到這一點?
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');
使用mod_rewrite
。
這裏有一個很好的2部分教程:http://www.sitepoint.com/guide-url-rewriting/
任何方式來阻止這個'黑客'? – Ron
首先,PHP的安全模式會阻止這個,但你可能不會使用它=)。除此之外,它取決於你加載實際文件的方式。我會在我的文章中舉一個安全的例子。 – elslooo
抱歉讓你瘋了,但是當我正在訪問mp3文件(實際上是RewriteEngine) - 沒有任何反應(沒有打開/保存對話框)。我應該添加什麼代碼才能使其工作?我以前的代碼非常簡單。 – Ron