长版:
我使用html5音频标签在我的网站上播放mp3文件。使用Flash,我可以流式传输mp3并将其保护95%。
使用html5很容易找到mp3位置,只需从那里下载。即使我使用独特的哈希来保护它,也不难检查chrome中的网络选项卡并查看带有哈希的mp3网址。
我想知道是否有其他方法可以保护mp3免受破坏,如果它值得花时间。例如 乐队夏令营 确实生成了独特的哈希值,但下载mp3仍然非常容易。对于youtube,你有下载网站,可以处理flv流并翻录音频并以mp3格式保存给用户。
我能想到的第一层安全性是将mp3文件的扩展名改为.txt或其他常见格式。
95%的用户没有发现扩展名,因为它默认隐藏在Windows和Apple上。这将阻止前95%的用户发现并播放mp3文件。
简洁版本
任何建议,以防止用户在使用html5音频标签时窃取mp3文件。
有点。
Grooveshark向正在流式传输的MP3的服务器端脚本发送POST请求,这使得在不动态创建POST请求的情况下访问和欺骗非常困难 - 尤其是因为您必须尝试存储音频文件那是收集的。但是你可以使用新的AudioContext来帮助解决大多数现代平台......
我在HTML5Rocks.com中使用了一个很好的例子来改变使用的头文件,如下所示:
var dogBarkingBuffer = null;
// Fix up prefixing
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
function loadDogSound(url) {
var request = new XMLHttpRequest();
request.open('POST', url, true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.responseType = 'arraybuffer';
// Decode asynchronously
request.onload = function() {
context.decodeAudioData(request.response, function(buffer) {
dogBarkingBuffer = buffer;
}, onError);
}
//this is the encryption key
request.send("key=98753897358975387943");
}
有关
正如你所看到的,我也发送了一个关键值,它也可能是公共/私人对的一部分。这应该让任何人试图干预 - 当然,除了简单地记录正在播放的MP3,但是在计算机内部或外部的任何环境中什么都可以阻止?
简答
没有。
将音频文件重命名为.txt不会对您的mp3音频文件的安全性做任何帮助。如果有的话,它会引起更多问题,因为现在,你的mp3音频文件将以不正确的MIME类型发送,这可能会导致浏览器的内置音频播放器出现问题。
我能为您提供的最佳建议是:
- 确保检查REFERER http标头,确保它来自包含mp3播放器的页面。
- 使用唯一的哈希保护mp3文件。
- 不允许同一个哈希值下载两次*
*请注意,即使这样做也可能导致问题,例如,如果用户从缓存中重新打开选项卡,再次播放该文件,并且未缓存mp3文件,会发生什么?
最后,即使在你的mp3文件是IIS和Apache历史上受保护最多的mp3文件之后,最后是什么阻止我打开Adobe Audition并录制音频流?
虽然你对Bandcamp的MP3音频流是正确的,但是在购买专辑后,mp3的质量不如普通下载。
事实上即使谷歌对它的视频流没有任何适当的保护也应该说些什么。一家通过YouTube上的视频观看产生数十亿美元的公司,甚至无法制作(或更好地放置 - 没有费心去实施)保护其视频的任何可行方法。
查看 Grooveshark的HTML5网站。这很安全。播放歌曲后,将其注入URL栏,然后自己查看: javascript:alert(window.GS.audio.audio.src);
。它不是那么简单 grooveshark.com/songs/song.mp3,不幸的是。