在flash中访问环境变量

时间:2013-08-05 14:42:34

标签: flex flash

我知道我无法直接在Flash中访问环境变量。

我的项目是一个本地swf文件,从flash播放器而不是通过浏览器运行。 目标是保护SWF免受未经授权的PC播放。 (这是我的客户要求)。

我的想法是将它嵌入EXE(例如在Delphi中制作)作为activeX。 我不确定这是最好的解决方案。

我认为AIR要做得更复杂。

此外,如何直接禁止SWF的访问? 也许以任何方式嵌入swf?

欢迎任何建议,提示。

问候

1 个答案:

答案 0 :(得分:1)

我要说的是,我不认为有100%的方法来阻止未经授权的访问 - 如果有的话,就没有像盗版的盗版或闪存这样的东西。你能做的最好就是让它很难入侵。

一些建议:

  • 您实际上可以通过使用NativeProcess调用AIR中的外部进程来访问环境变量(此链接有一个快速写入:http://www.tikalk.com/js/get-windows-environment-variables-air-application) - 但是攻击.bat或添加env var是微不足道的LI>
  • 您可以实施自己的串行密钥系统,并为合法用户提供密钥。理想情况下,需要通过服务器调用验证
  • 您可以编写“phone-home”服务器调用 - 如果没有它,应用程序将无法运行。你如何识别你的用户真的取决于你;你可以尝试通过IP,但它并不完美
  • 您可以禁用本地执行(检查SecureSWF),并在登录墙后面在线运行
  • 您可以禁用本地执行,并通过Intranet运行,因此公司中的人可以使用它,但不能使用普通公众
  • 根据您的应用程序,在启动时,您可以从网上下载必要的文件(内容)。这可能需要登录,或者您可以阻止未经授权的IP。这就是Ubisoft DRM在他们的一些游戏中的作用。
  • 与此类似,您可以下载包含应用程序实际逻辑的其他SWF文件。这些SWF只存储在内存中,永远不会保存到磁盘

通过所有这些,应用程序最终可以被黑客攻击打开和修改(例如,您的服务器检查代码可能被删除,因此电话回家永远不会发生)。至少,通过SecureSWF(http://www.kindi.com/)之类的东西来运行您的SWF,以便在任何公开发布之前对代码进行篡改。

这一切都取决于你想要付出多少努力来解决这个问题。对于涉及互联网的所有建议,如果网络中断,您将无法使用您的应用程序,这可以理解将导致挫败感。对于所有不涉及互联网的建议,您永远不会知道它是否成功。