Actionscript 3.0禁用navigateToURL

时间:2012-06-25 04:39:07

标签: security actionscript

我玩的网页游戏允许用户上传的内容与使用navigateToURL功能将玩家发送到随机网站的人一起遇到很多问题。我很好奇是否有办法使用Actionscript 2或3禁用此功能。我已经看到了使用HTML嵌入的方法,但我没有对该网站的管理访问权。

1 个答案:

答案 0 :(得分:1)

在做了更多研究后,我得出了一个可靠的答案: 您应该在服务器端使用PHP和名为swfdump的可执行文件的组合来验证用户上载的内容。

swfdump是位于Flex SDK的bin文件夹中的exe文件。您可以使用exec从PHP运行它。 它将读取swf的字节码并生成报告。从中您可以轻松找到包含navigateToURL()的文件并拒绝这些文件。

我使用swfdump -abc -out myfilereport.swfx myfile.swf测试了我自己的文件 在那个输出中我发现了这个:

        findpropstrict  flash.net:navigateToURL
        findpropstrict  flash.net:URLRequest
        pushstring      "http://www.plasticsturgeon.com"
        constructprop   flash.net:URLRequest (1)
        callproperty    flash.net:navigateToURL (1)

我使用的网址是“http://www.plasticsturgeon.com”。但是,消除包含flash.net.navigateToURL的任何swf将更加容易。一旦您确定存在,您就可以向最终用户生成错误通知。

因此,使用此方法,您可以查找并拒绝任何使用导航到URL的swf。你甚至可以创建一个批处理来运行并使这个问题无效。

有关使用字节码的更多信息: http://code.google.com/p/redtamarin/wiki/ABC

关于反编译ASbytecode: http://dougmccune.com/flex/FOTB_Decompiling_Doug_McCune.pdf