只有登录用户才能从我们的服务器播放音频

时间:2012-08-17 14:11:19

标签: silverlight security telerik audio-streaming

我们制作了一个silverlight应用程序,用户可以从telerik radmediaplayer控件中预览浏览器中的音频文件。

这些文件位于网络服务器上,任何嗅探交通信息的人都可以下载该文件。 我们希望阻止未登录的用户访问/下载这些文件

除了为应用程序提供某种临时有效URL并实现自定义httphandler之外......我们有哪些选择?

如果我们的客户可以下载文件,这不是太大的问题,我们只是不希望世界其他地方也有访问权。

任何想法都会受到欢迎!

[更新] 我唯一能想到的是:

  • 将文件托管在非公用文件夹中
  • 如果用户请求预先删除文件,请将其复制到新名称下的公用文件夹([guid] .mp3)并返回其网址
  • 每隔x分钟清理一次公用文件夹。

1 个答案:

答案 0 :(得分:3)

不要让Web服务器直接从目录中提供文件。将部分应用程序放在前面,然后让一个服务器端脚本提供这些文件。将原始音频文件保留在Web根目录之外。

例如,您的客户端应用程序将访问如下文件:

http://someserver/yourscript?audio_asset_id=12345

yourscript处的代码将验证会话数据,确保用户登录,然后找出资产ID 12345的真实路径,并将其内容回显给客户端。不要忘记包含正确的Content-Type标题。

一旦您可以控制这些资产的访问,您就可以实施您喜欢的任何安全措施。如果你的会话区域已经很好地保护了安全,那应该没问题。我还建议实施合理的配额。如果您使用来自多个IP地址的相同会话ID在资产上获得100个请求......有些事情是不对的。