防止轻松下载在 mp3 播放器上播放的 mp3?

Posted

技术标签:

【中文标题】防止轻松下载在 mp3 播放器上播放的 mp3?【英文标题】:Prevent easy downloading of mp3s that play on mp3 players? 【发布时间】:2013-03-27 21:53:04 【问题描述】:

我在我的网站上设置了 mp3 播放器来播放 mp3。目前,用户可以轻松浏览源代码,搜索“mp3”并下载我网站上的所有音乐。我知道要完全阻止坚定的用户下载音乐几乎是不可能的,但我想让普通用户更难。有什么方法可以混淆 mp3 的链接?

相关网站:http://boyceavenue.com/music

【问题讨论】:

将它们保存在文档根目录之外并通过脚本提供它们,例如getmp3.php?id=XXX。只要 XXX 不是递增整数,他们就必须更加努力地获得“有效”id 的列表 【参考方案1】:

您没有指定您使用的语言。为了扩展 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 或更高版本提供多种类型的文件,您可以通过以下方式确定 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 或其他),告诉人们到别处寻找。同时禁用浏览目录。如果只有极少数人需要访问,您还可以在目录上输入密码,从而需要登录才能访问文件。

【讨论】:

以上是关于防止轻松下载在 mp3 播放器上播放的 mp3?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止我的用户从 iPod 中删除 MP3 文件

防止mp3的渐进式下载?

JavaScript 使用del.icio.us PlayTagger直接在您的网站或博客上轻松播放mp3文件

wordpress里加了个外链的MP3播放器,用火狐,谷歌都没事,用ie就不能播了

如何跟踪文件下载

如何在波形的特定点播放 mp3?