在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类型,这可能会导致浏览器内置音频播放器的问题。

我可以为您提供的最佳建议是:

  • 请确保您检查了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那么简单。

    链接地址: http://www.djcxy.com/p/60735.html

    上一篇: Audio tag security in html5

    下一篇: Passing duration when streaming mp3 from server to html5 audio