我在我的网站上设置了 mp3 播放器来播放 mp3。目前,用户可以轻松浏览源代码,搜索“mp3”并下载我网站上的所有音乐。我知道完全阻止坚定的用户下载音乐几乎是不可能的,但我想让普通用户更难。有什么方法可以混淆 mp3 的链接?
问问题
1828 次
1 回答
0
您没有指定您使用的语言。为了扩展 Marc B 所写的内容,我建议使用 PHPhttp_send_file
命令以及文件的校验和。
要发送文件,请使用以下命令:
$filename = "/absolute/or/relative/path/to/file.ext";
$mime_type = "audio/mpeg"; // See note below
http_send_content_disposition($filename, true);
http_send_content_type($mime_type);
http_throttle(0.1, 2048);
http_send_file($filename);
如果您使用 PHP 5.3.0 或更高版本提供多种类型的文件,您可以通过以下方式确定 mimetype:
$filename = "/absolute/or/relative/path/to/file.ext";
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $filename);
finfo_close($finfo);
计算校验和很简单。只需使用md5_file
.
那么,你能用校验和做什么呢?
好吧,您可以创建一个相互交叉引用的校验和和文件名数组。也就是说,您将校验和包含在文件的链接中,但有一个小例程来查找校验和并传递 mp3 文件。您也可以在数据库中执行此操作。你也可以像一些应用程序一样,根据它们的校验和(music/3/3a/song.mp3
校验和为 3a62f6 或其他)将文件存储在目录结构中。
如果您不关心文件名被破坏,您可以使用文件名的校验和保存文件。这可以在上传时(如果您的文件正在上传)或通过批处理脚本(使用 CLI)完成。
您应该做的另一件事是放置一个默认文档(index.php 或其他),告诉人们到别处寻找。同时禁用浏览目录。如果只有极少数人需要访问,您还可以在目录上输入密码,从而需要登录才能访问文件。
于 2013-03-28T04:04:26.840 回答