在html5中的音频标签安全
长版本:
我使用html5音频标签在我的网站上播放mp3文件。 使用Flash,我可以流式传输mp3并保护它95%。
使用html5很容易找到mp3位置,并从那里下载。 即使我使用独特的哈希来保护它,也不难检查chrome中的网络标签,并使用哈希来查看mp3网址。
我想知道是否有其他方法可以保护mp3免受撕裂,以及是否值得花时间。 例如bandcamp确实会生成独特的哈希,但它仍然很容易下载mp3。 对于youtube,您获得了可以处理flv流并下载音频并将其保存为mp3格式的下载网站。
我能想到的第一层安全性是将mp3文件的扩展名改为.txt或另一种常见格式。
95%的用户没有发现扩展名,因为它在Windows和苹果上默认隐藏。 这将阻止前95%的用户发现并播放mp3文件。
简洁版本
任何阻止用户在使用html5音频标签时窃取mp3文件的建议。
有点。
Grooveshark发送POST请求到正在流式传输的MP3的服务器端脚本,这使得访问和欺骗非常困难,而无需自己动态创建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播放之外,还有什么可能阻止在计算机内部或外部的任何环境中使用MP3?
简答
没有。
将音频文件重命名为.txt不会做任何事情来帮助您的mp3音频文件的安全性。 如果有的话,它会导致更多的问题,因为现在,你的MP3音频文件将被发送不正确的MIME类型,这可能会导致浏览器内置音频播放器的问题。
我可以为您提供的最佳建议是:
*请注意,即使这样做可能会导致问题,例如,如果用户重新打开缓存中的选项卡,再次播放文件,并且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那么简单。
上一篇: Audio tag security in html5
下一篇: Passing duration when streaming mp3 from server to html5 audio