html5中的音频标签安全性

aut*_*coo 11 security audio html5

长版:

我使用html5音频标签在我的网站上播放mp3文件.使用Flash,我可以流式传输mp3并将其保护95%.

使用html5,很容易找到mp3位置,只需从那里下载.即使我使用独特的哈希来保护它,也不难检查chrome中的网络选项卡并查看带有哈希的mp3网址.

我想知道是否有其他方法可以保护mp3免受破坏,如果值得的话.例如,bandcamp会产生独特的哈希值,但下载mp3仍然非常容易.对于youtube,你有下载网站,可以处理flv流并翻录音频,并以mp3格式保存给用户.

我能想到的第一层安全性是将mp3文件的扩展名改为.txt或其他常见格式.

95%的用户没有发现扩展名,因为它默认隐藏在Windows和Apple上.这将阻止前95%的用户发现并播放mp3文件.

精简版

任何建议,以防止用户在使用html5音频标签时窃取mp3文件.

Tim*_*eld 8

简答

没有.

将音频文件重命名为.txt不会做任何事情来帮助您保护mp3音频文件的安全性.如果有的话,它会引起更多问题,因为现在,你的mp3音频文件将以不正确的MIME类型发送,这可能会导致浏览器的内置音频播放器出现问题.

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

  1. 确保检查REFERER http标头,确保它来自包含mp3播放器的页面.
  2. 使用唯一的哈希保护mp3文件.
  3. 不要允许相同的哈希值下载两次*

*请注意,即使这样做也可能导致问题,例如,如果用户从缓存中重新打开选项卡,再次播放该文件,并且未缓存mp3文件,会发生什么?

最后,即使在你的mp3文件是IIS和Apache历史上受保护最多的mp3文件之后 - 最后是什么阻止我打开Adobe Audition并录制音频流?

虽然你对Bandcamp的MP3音频流是正确的,但是在购买专辑后,mp3的质量不如普通下载.

事实上即使谷歌对它的视频流没有任何适当的保护也应该说些什么.一家通过YouTube上的视频观看产生数十亿美元的公司甚至无法制作(或更好地放置 - 没有费心去实施)保护其视频的任何可行方法.


mar*_*yzm 6

的种类.

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");
}
Run Code Online (Sandbox Code Playgroud)

有关

正如你所看到的,我也发送了一个键值,它也可能是公共/私人对的一部分.这应该让任何人试图干预 - 当然,除了简单地记录正在播放的MP3,但是在计算机内部或外部的任何环境中可能会阻止它?