0

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

我知道在我的动作脚本中,我可以这样做:

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

然而,反编译 SWF 并简单地删除这一行是非常容易的。

是否可以在服务器端做一些事情来阻止本地运行的 SWF 从我的站点下载?我尝试检查引荐来源网址,但此字段通常未填充。有没有人有任何其他想法?

谢谢,马特

4

2 回答 2

2

您将永远无法使用crossdomain.xml. 如果用户只是将请求的 URL 复制并粘贴到一个空白浏览器窗口中,则该机制将停止工作。此外,该机制可以通过使用代理来欺骗。它所做的只是稍微提高了标准,尤其是当有人尝试使用 SWF 视频播放器流式传输托管在您网站上的 FLV 视频时。

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

于 2011-01-09T23:49:49.113 回答
0

双击并运行 SWF 通常仅在您安装了独立播放器时才有效,否则它将使用浏览器打开。Adobe 是否在 Flash Pro 之外分发独立播放器?他们不习惯,尽管随着 Flash 平台工具的增长,他们现在可能会这样做。

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

于 2011-01-10T00:55:11.653 回答