我们制作了一个silverlight应用程序,用户可以从telerik radmediaplayer控件中预览浏览器中的音频文件。
这些文件位于网络服务器上,任何嗅探交通信息的人都可以下载该文件。 我们希望阻止未登录的用户访问/下载这些文件。
除了为应用程序提供某种临时有效URL并实现自定义httphandler之外......我们有哪些选择?
如果我们的客户可以下载文件,这不是太大的问题,我们只是不希望世界其他地方也有访问权。
任何想法都会受到欢迎!
[更新] 我唯一能想到的是:
答案 0 :(得分:3)
不要让Web服务器直接从目录中提供文件。将部分应用程序放在前面,然后让一个服务器端脚本提供这些文件。将原始音频文件保留在Web根目录之外。
例如,您的客户端应用程序将访问如下文件:
http://someserver/yourscript?audio_asset_id=12345
yourscript
处的代码将验证会话数据,确保用户登录,然后找出资产ID 12345
的真实路径,并将其内容回显给客户端。不要忘记包含正确的Content-Type
标题。
一旦您可以控制这些资产的访问,您就可以实施您喜欢的任何安全措施。如果你的会话区域已经很好地保护了安全,那应该没问题。我还建议实施合理的配额。如果您使用来自多个IP地址的相同会话ID在资产上获得100个请求......有些事情是不对的。