2011-10-30 38 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