Hug*_*ing 14
实际上不可能阻止下载.你可以让某些人更难,但他仍然需要下载所有数据才能听到这首歌.因此,即使您使用某种加密技术将数据发送到您自己编写的Flash播放器,播放器也必须对其进行解密并播放音频.而且由于你可以反编译闪存,因此很难找到算法.他还可以在播放时再次录制音乐(类似于第一个DVD解密工具,他们只需截取30次/秒即可通过百万美元的安全测量)
所以我们的目标是让它更难,而不是不可能.
我个人会选择临时可用的链接与cookie,所以我仍然可以使用jplayer,而不必重新发明轮子.还要使用一些模糊处理来使URL更难阅读.
当有人请求主URL(您显示播放器的位置)时,生成一个唯一的密钥并将其保存在cookie中.唯一键应链接到IP地址并请求存储在会话中的时间.
现在创建一个音乐文件的链接,如playfile.php?file = music.mp3等等.只需确保PHP将处理文件请求.如果你对这个链接进行模糊处理,那么找到它会有点困难.
在playfile.php中检查cookie中的唯一代码并检查它是否与会话中的IP地址匹配,并且请求时间小于EG 15秒(任何更长时间,并且音乐将无法播放,因为连接速度较慢).如果是,则流式传输文件.如果不是,请阻止它.
现在如果有人会写一个程序/脚本来下载音乐,他可以.但如果有人知道并有时间这样做,没有什么能阻止他下载它.
这将阻止任何普通用户下载它.
防止热链接更容易一些,因为通常你会有一个referrer字符串来检查.如果存在,那么您将知道不提供内容.这是一个代码示例.
另一方面防止下载要困难得多 - 最好的方法是让Flash应用程序实时解密数据 - 如果使用简单的加密方案,大多数客户端硬件应该足够快.我在网上找不到这个,所以我想知道你是否需要自己做一些Flash/Flex开发:以块的形式下载MP3数据,从库中应用解密例程,然后将它们发送到某种MP3解码缓冲区.我怀疑密码是硬编码的.
附录:我发现在Flash的更高版本中,您可以从缓冲区播放动态生成的声音(请参阅此处).因此,如果您愿意参与某些Flash/Flex开发,那么就可以看到解决方案.我找不到任何访问低级MP3例程的东西,但不要忘记文件不必是从服务器传输的MP3 - 将它们转换为您的应用程序所需的任何内容.
归档时间: |
|
查看次数: |
6791 次 |
最近记录: |