【发布时间】:2017-05-12 16:25:32
【问题描述】:
我有一个音乐行业的客户,他推出了一张新专辑。在加载专辑唱片公司的给定页面后,我有点惊讶地发现从他们的网站下载声音非常容易,声音在以下 HTML5 源代码中运行:
<div class="sqs-audio-embed" data-url="https://...fileserverURL...SD+Master+V2.mp3" data-mime-type="" data-title="title" data-author="author" data-show-download="false" data-design-style="legacy" data-duration-in-ms="761000" data-color-theme="light" id="yui_3_17_2_1_144058079_1116">
<div id="yui_3_17_2_1_149458079_1120" class="yui3-widget sqs-widget sqs-audio-player play-state-stopped ready-state-initialized">
<div id="yui_3_17_2_1_149058079_1122" class="sqs-audio-player-content">
</div>
</div>
</div>
这是一个基于另一个域的嵌入式 URL。
所以我的问题是......
如何在网站上播放声音但拒绝直接下载或直接链接?
我的想法:
1) 我想,在 fileserverURL 上使用自定义 Content Security Policy 之类的东西可以解决问题,拒绝直接访问,除非访问来源,除非它是唱片公司网站的域名(例如)。
2) .htaccess 请求(例如阻止图像直接访问的请求)是否也可以工作,但如果通过某个域或网页播放/调用会出现某种异常? p>
总结:
- Mp3 文件。
- 文件位于与网站不同的 URL 域中
- 文件可以在网站上播放,但不允许直接链接
- 除非没有其他办法,否则希望避免使用 Javascript
我查看了有关 Stack Overflow 的其他问题,但没有找到与上述情况的实际解决方法相关的任何 (any!)(允许播放不允许直接访问)。我发现的最接近的是 2010 年的 this question,这似乎意味着上述操作无法完成,但我确信如果两台服务器(filehost 和 website) 设置为允许通过充当网守的网站服务器仅访问文件,如上面的第 1 点。)
是的,我也知道承诺的人可以从下载的浏览器缓存中复制声音(实际播放声音的地方),但我并没有太对此感到着迷,只是,嗯,一点点......
【问题讨论】: