html - 如何在网络上播放音频文件但未启用下载?

标签 html audio drm ruby-on-rails-6

在我的网络(Rails)应用程序中,我想提供播放音乐文件的功能,这些音乐文件我已获得其出版商的特别许可,可用于收听,但仅限于网站。有没有一种方法可以支持播放音乐文件,从而无法下载该文件?
浏览器的 HTML 5 音频播放器可让您下载正在播放的文件,因此我正在寻找一种不同的方法。
我意识到用户可以通过将系统音频重定向到文件或以其他方式录制文件来规避任何限制,但我仍然想阻止下载文件。

最佳答案

如果浏览器或客户端可以在本地播放音频,那么它必须下载它 - 可以执行混淆 URL 等操作,但这些通常很容易解决。
通常的下一个防御措施是加密内容并安全地传递 key ,或者使用某种安全的专有方法或使用 DRM 系统。
然而,对于音频,因为一旦音频播放,音频路径本身在设备中大多是不安全的,正如您所指出的,您必须平衡工作量/成本与这会给您带来的额外安全性。
撰写本文时使用的主要商业 DRM 系统是 Google 的 Widevine、Apple 的 FairPlay 和 Microsoft 的 PlayReady。覆盖范围大致为:

  • Android 设备 - Widevine
  • PC 或 MAC 上的 Chrome 浏览器 - Widevine
  • iOS 设备 - FairPlay
  • Safari 浏览器 - FairPlay
  • Internet Explorer 浏览器,xBox - PlayReady

  • 如您所见,要使用这些默认 DRM 获得广泛覆盖,您通常需要多个 DRM,并且通常会使用第三方 Multi DRM 服务。
    还有一些不太安全的 DRM 技术,它们不需要商业服务并且通常以明文方式传输 key ,但可能会满足您的需求。这些包括:
  • 带 DASH 的 Clearkey
  • 使用 HLS 进行 HLS AES 加密

  • 您可以在此处查看一些示例:https://stackoverflow.com/a/46666226/334402

    关于html - 如何在网络上播放音频文件但未启用下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63333840/

    相关文章:

    audio - 在有问题的as2中动态加载声音

    javascript - 如何在具有多行且动态构建的数据表中提交表单?

    audio - 获取所有当前播放的声音(或获取缓冲区播放声音的数量)

    javascript - 如何更改/移动按钮位置 "when"clicked

    iphone - 寻找一些使用 iPhone caf=>m4a 进行音频转换的示例代码

    c++ - 限制某台计算机的功能

    javascript - Firefox 在没有启用 DRM 的情况下在 Azure 媒体播放器上显示 DRM 警告

    html - 如何使用ClearKey加密WebM或MP4文件然后播放

    Javascript JSON 在返回 3 项后插入新行

    html - 当您在其下方添加另一个 div 时,如何使框阴影保持不变?