您通常如何保护您网站的高级版块?

时间:2011-10-30 12:29:06

标签: php asp.net security

我的网站文件夹根目录下有一个uploads文件夹。它们包含mp3。现在只有在用户完成该特定mp3的PayPal付款后才能访问此文件夹,即一旦付款完成,下载链接应通过电子邮件发送给他们,他们应该只能从该链接下载。

我不需要任何代码,但我只是这些网站如何保护其优质内容的一般策略?

我正在使用PHP,但如果您对自己感觉更舒服,也可以在Asp.Net中提供策略。

3 个答案:

答案 0 :(得分:3)

您不应该将MP3文件存储在可从外部访问的位置。相反,您提供给用户的链接应该是指向

页面(PHP或任何内容)的链接
  1. 验证用户是否有权访问资源
  2. 将所询问的资源流式传输给用户
  3. 这样的东西
    download.php?mp3FileId=5435
    

    download.php将检查用户是否已经过身份验证并已为文件5435付费,然后从受保护资源中读取此文件,并将其传输到HTTP响应,并设置适当的内容类型。

答案 1 :(得分: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.');
}

答案 2 :(得分:0)

你可以通过以下几种方式做到这一点。但是,您应该要求用户输入用户名/密码来访问文件。

最简单(也是最简单的)方式 - 受保护目录中的htaccess文件。请参阅此链接以获取教程:http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/ 这对于保护网站的会员和贵宾区非常普遍。

最好的方法可能是让用户在您的网站上注册并选择他/她自己的用户名/密码,并在Paypal付款完成后激活该帐户。

然后我会采用上面提到的download.php?id=XXX方法