我在我的网站上设置了播放mp3的MP3播放器。目前,用户可以轻松查看来源,搜索“mp3”并在我的网站上下载所有音乐。我知道完全阻止确定的用户下载音乐几乎是不可能的,但我想让普通用户更难。有什么办法可以混淆到mp3的链接?防止轻松下载MP3播放器上播放的MP3?
相关网站:http://boyceavenue.com/music
我在我的网站上设置了播放mp3的MP3播放器。目前,用户可以轻松查看来源,搜索“mp3”并在我的网站上下载所有音乐。我知道完全阻止确定的用户下载音乐几乎是不可能的,但我想让普通用户更难。有什么办法可以混淆到mp3的链接?防止轻松下载MP3播放器上播放的MP3?
相关网站:http://boyceavenue.com/music
您没有指定要使用的语言。为了扩展Marc B写的内容,我建议使用PHP http_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或更高版本的文件,你可以决定的MIME类型是这样的:
$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或其他)告诉别人看。也禁用浏览目录。如果只有极少数人需要访问,则还可以在目录上输入密码,因此需要登录才能访问这些文件。
将它们保存在文档根目录之外并通过脚本提供它们,例如, 'getmp3.php?ID = XXX'。只要XXX不是递增整数,他们就必须更努力地获得“有效”ID的列表 – 2013-03-27 21:55:27