2011-10-30 45 views
1

我在我的網站文件夾根目錄下有一個uploads文件夾。他們包含mp3。現在這個文件夾只能在用戶完成特定mp3的PayPal付款後才能訪問,即一旦付款完成,下載鏈接應通過電子郵件發送給他們,他們應該只能從該鏈接下載。您通常如何保護您的網站的高級部分?

我不需要額外的代碼,但我只是一個這樣的網站如何保護他們的優質內容的一般策略?

我正在使用PHP,但如果您對此感覺更舒適,您也可以在Asp.Net中提供策略。

+0

可能重複提出的download.php?id=XXX方法[如何使用Apache/PHP保護目錄從沒有登錄的用戶(http://stackoverflow.com/questions/ 7902417 /如何使用apache-php-to-protect-directories-from-users-that-arent-logged-in)或[如何從公開動態密碼保護文件(圖像,視頻,zip)並允許訪問僅對會員?](http://stackoverflow.com/q/2416736/367456) – hakre

回答

3

你應該只不是MP3文件存儲在從外部訪問的位置。相反,你給用戶的鏈接應該是一個頁面(PHP或任何東西)的鏈接,這將

  1. 驗證用戶訪問資源
  2. 流的要求資源給該用戶的權利

喜歡的東西

download.php?mp3FileId=5435 

的的download.php將檢查用戶是否被驗證,並已支付了文件5435,然後從受保護的資源讀取該文件,並將其流式傳輸到HTTP響應,並設置適當的內容類型。

1

發送鏈接到.php,而不是.mp3文件。如果用戶有權訪問文件 - 使用PHP顯示文件。

實例鏈接:

http://domain.com/download.php?file=music.mp3 

腳本:

if($have_access) {  
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file)); 
    header('Content-Length: ' . filesize($file)); 
    flush(); 
    readfile($file); 
}else{ 
    die('You have no access.'); 
} 
0

您可以通過多種方式來做到這一點。但是,您選擇哪個用戶應該被要求輸入用戶名/密碼才能訪問這些文件。

最簡單(也是最簡單)的方式 - 保護目錄中的htaccess文件。看到這個鏈接的教程:http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/ 這是非常普遍的保護網站的會員和VIP區域。

最好的方法可能是讓用戶在您的網站上註冊並選擇他/她自己的用戶名/密碼,並在貝寶付款完成時激活帳戶。

然後我會去上面的

+0

+1謝謝。 htaccess的一部分真的很有幫助。 – Jaggu

相關問題