是否可以阻止从我的网站下载本地运行的SWF(AS3)?

时间:2011-01-09 23:27:23

标签: flex actionscript-3 crossdomain.xml

我有一个crossdomain.xml文件,它允许仅在特定几个域上运行的SWF从我的域下载资源。但是,一个简单的方法是让用户将SWF下载到本地计算机并在那里运行(即在Windows资源管理器中双击它,而不是通过http://localhost运行)。似乎发生这种情况时,会忽略crossdomain.xml文件。

我理解在我的动作中,我可以这样做:

if (Security.sandboxType.indexOf(Security.REMOTE) == -1) 
// running locally - don't allow

然而,有人非常容易反编译SWF并简单地删除此行。

是否可以在服务器端执行某些操作以阻止本地运行的SWF从我的站点下载?我尝试检查引荐来源但这个字段通常没有填充。有没有人有其他想法?

谢谢,马特

2 个答案:

答案 0 :(得分:2)

您永远无法使用crossdomain.xml完全阻止下载。如果用户只是将请求的URL复制并粘贴到空白浏览器窗口中,则该机制将停止工作。另外,机制can be cheated by using a proxy。它只是提高了一点,特别是当有人试图使用SWF视频播放器流式传输您网站上托管的FLV视频时。

如果保护您的资源是值得的,您应该考虑添加某种身份验证/授权机制和/或加密。

答案 1 :(得分:0)

Double单击并运行SWF通常只有在安装了独立播放器时才能工作,否则它将打开浏览器。 Adobe是否在Flash Pro之外分发独立播放器?他们不习惯,尽管随着Flash Platform Tools的发展,他们现在也可以这样做。

尽管如此,我希望大多数用户不会安装独立播放器。在安全性和保护内容方面,我怀疑你专注于错误的事情。