我有一个crossdomain.xml文件,它允许仅在特定几个域上运行的SWF从我的域下载资源。但是,一个简单的方法是让用户将SWF下载到本地计算机并在那里运行(即在Windows资源管理器中双击它,而不是通过http://localhost运行)。似乎发生这种情况时,会忽略crossdomain.xml文件。
我理解在我的动作中,我可以这样做:
if (Security.sandboxType.indexOf(Security.REMOTE) == -1)
// running locally - don't allow
然而,有人非常容易反编译SWF并简单地删除此行。
是否可以在服务器端执行某些操作以阻止本地运行的SWF从我的站点下载?我尝试检查引荐来源但这个字段通常没有填充。有没有人有其他想法?
谢谢,马特
答案 0 :(得分:2)
您永远无法使用crossdomain.xml
完全阻止下载。如果用户只是将请求的URL复制并粘贴到空白浏览器窗口中,则该机制将停止工作。另外,机制can be cheated by using a proxy。它只是提高了一点,特别是当有人试图使用SWF视频播放器流式传输您网站上托管的FLV视频时。
如果保护您的资源是值得的,您应该考虑添加某种身份验证/授权机制和/或加密。
答案 1 :(得分:0)
Double单击并运行SWF通常只有在安装了独立播放器时才能工作,否则它将打开浏览器。 Adobe是否在Flash Pro之外分发独立播放器?他们不习惯,尽管随着Flash Platform Tools的发展,他们现在也可以这样做。
尽管如此,我希望大多数用户不会安装独立播放器。在安全性和保护内容方面,我怀疑你专注于错误的事情。